Numeric routines
The first routine allows to add a vector:
- NAME: add_apply_vector
- SYNOPSIS: INT add_apply_vector(OP a,b)
- DESCRIPTION: a,b should be two VECTORobjects, and the routine
computes b = b+a, where the addition of the two vectors is
componentwise. This also works, if the VECTORobjects have different
length. a,b must be different objects.
- RETURN: OK, or ERROR if some error occured.
- BUG: there is no check on types, because this is a special
routine, normally you should use add_apply instead.
The next routine allows to add two vectors:
- NAME: add_vector
- SYNOPSIS: INT add_vector(OP a,b,c)
- DESCRIPTION: a,b should be VECTORobjects, c should be an empty
object. The routine computes c = a+b. The addition is
componentwise, and it also works if the vectors have different
length. a,b,c must all be different
- RETURN: OK, or ERROR
- BUG: there is no check on types, because this is a special
routine, normally you should use add instead.
You can also form the negative of a vector:
- NAME: addinvers_apply_vector
- SYNOPSIS: INT addinvers_apply_vector(OP a)
- DESCRIPTION: a should be a VECTORobject. The routine computes a
= -a. This is also meant componentwise.
- RETURN: OK, or ERROR
- BUG: there is no check on types, because this is a special
routine, normally you should use addinvers_apply instead.
You can compute the negative of a VECTORobject:
- NAME: addinvers_vector
- SYNOPSIS: INT addinvers_vector(OP a,b)
- DESCRIPTION: a should be a VECTORobject. b should be an empty
object. The routine computes b = -a. This is meant
componentwise.
- RETURN: OK, or ERROR
- BUG: there is no check on types, because this is a special
routine, normally you should use addinvers instead.
The addition of a to each component of a vector:
- NAME: addtoallvectorelements
- SYNOPSIS: INT addtoallvectorelements(OP a,b,c)
- DESCRIPTION: b should be a vector, the routine adds a to all
the elements of b, the result will become c.
- RETURN: OK or ERROR.
- BUG: it only works for different a,b,c
The multiplication of each entry by a:
- NAME: mult_scalar_vector
- SYNOPSIS: INT mult_scalar_vector(OP a,b,c)
- DESCRIPTION: b should be a VECTORobject, c should be an empty
object. The routine multiplies each element of b by a, and the
result is c.
- RETURN: OK, or ERROR
- BUG: there is no check on types, because this is a special
routine, normally you should use mult instead.
A slightly different componentwise multiplication:
- NAME: mult_apply_vector_vector
- SYNOPSIS: INT mult_apply_vector_vector(OP a,b)
- DESCRIPTION: a,b should be VECTORobjects, The routine
multiplies componentwise, and the result is b. The vectors must be
of the same length.
- RETURN: OK, or ERROR
- BUG: there is no check on types, because this is a special
routine, normally you should use mult_apply instead.
Multiplication by a matrix:
- NAME: mult_vector_matrix
- SYNOPSIS: INT mult_vector_matrix(OP a,b,c)
- DESCRIPTION: a should be a VECTORobject, b should be a MATRIX
object, c should be an empty object. The routine multiplies
according to the rules for the multiplication of matrices, and the
result becomes a VECTORobject. The length of the VECTORobject a
must be equal to the height of the MATRIX object b.
- RETURN: OK, or ERROR
- BUG: there is no check on types, because this is a special
routine, normally you should use mult instead.
Multiplication by a vector:
- NAME: mult_vector_vector
- SYNOPSIS: INT mult_vector_vector(OP a,b,c)
- DESCRIPTION: a,b should be VECTORobjects, c should be an empty
object. The routine multiplies componentwise, and the result is c.
The vectors must be of the same length.
- RETURN: OK, or ERROR
- BUG: there is no check on types, because this is a special
routine, normally you should use mult instead.
The evaluation of the standard scalar product:
- NAME: scalarproduct_vector
- SYNOPSIS: INT scalarproduct_vector(OP a,b,c)
- DESCRIPTION: a,b should be VECTORobjects, c should be the empty
object. a and b must have the same length. c becomes the euclidian
scalarproduct of a and b.
- RETURN: OK, or ERROR
- BUG: there is no check on types, because this is a special
routine, normally you should use scalarproduct instead.
The sum of all the entries:
- NAME: sum_vector
- SYNOPSIS: INT sum_vector(OP a,b)
- DESCRIPTION: a should be a VECTORobject, b should be the empty
object. b becomes the sum over the vector a.
- RETURN: OK, or ERROR
- BUG: there is no check on types, because this is a special
routine, normally you should use sum instead.
harald.fripertinger "at" uni-graz.at, May 26,
2011