// 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 }
// 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 }
// 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 }
// 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 }