Esempio n. 1
0
// AXPBY sets y = alpha x + beta y
func (y *Vec) AXPBY(x *Vec, alpha, beta float64) error {
	perr := C.VecAXPBY(y.v, C.PetscScalar(alpha), C.PetscScalar(beta), x.v)
	if perr != 0 {
		return errors.New("Error in AXPBY")
	}
	return nil
}
Esempio n. 2
0
// WAXPY sets w = alpha x +  y
func (w *Vec) WAXPY(x, y *Vec, alpha float64) error {
	perr := C.VecWAXPY(w.v, C.PetscScalar(alpha), x.v, y.v)
	if perr != 0 {
		return errors.New("Error in AYPX")
	}
	return nil
}
Esempio n. 3
0
// AYPX sets y = x + alpha y
func (y *Vec) AYPX(x *Vec, alpha float64) error {
	perr := C.VecAYPX(y.v, C.PetscScalar(alpha), x.v)
	if perr != 0 {
		return errors.New("Error in AYPX")
	}
	return nil
}
Esempio n. 4
0
// Shift adds a constant to the vector
func (v *Vec) Shift(a float64) error {
	perr := C.VecShift(v.v, C.PetscScalar(a))
	if perr != 0 {
		return errors.New("Error in Shift")
	}
	return nil
}