eqvector.c File Reference

Detailed Description

Implementation of the module to manage symbolic vectors in R^3.

See Also
eqvector.c, TEqVector.

Definition in file eqvector.c.

Functions

void InitEqVector (TEqVector *ev)
 Initializes a vector of equations. More...
 
void CopyEqVector (TEqVector *ev_dst, TEqVector *ev_src)
 Copies a vector of equations. More...
 
void EqVectorFromVector (double *v, TEqVector *ev)
 Initializes a vector of equations from a constant vector. More...
 
TequationGetEqVectorElement (unsigned int i, TEqVector *ev)
 Gets an alement from a equation vector. More...
 
void ScaleEqVector (double ct, TEqVector *ev)
 Scales a equation vector with a constant. More...
 
void VarScaleEqVector (unsigned int v, TEqVector *ev)
 Scales an equation vector by a variable. More...
 
void AccumulateEqVectors (TEqVector *ev, double ct, TEqVector *evOut)
 Accumulates two vectors of equations. More...
 
void VarAccumulateEqVectors (TEqVector *ev, unsigned int v, TEqVector *evOut)
 Accumulates two vectors of equations. More...
 
void VarAccumulateVector2EqVector (double *c, unsigned int v, TEqVector *evOut)
 Accumulates a constant vector to a equation vector. More...
 
void Var2AccumulateVector2EqVector (double *c, unsigned int v1, unsigned int v2, TEqVector *evOut)
 Accumulates a constant vector to a equation vector. More...
 
void AccumulateVector2EqVector (double *v, TEqVector *ev)
 Accumulates a constant vector to an equation vector. More...
 
void CrossProductEqVectors (TEqVector *ev1, TEqVector *ev2, TEqVector *evOut)
 Cross product of two equation vectors. More...
 
void CrossProductVectorEqVector (double *v, TEqVector *ev, TEqVector *evOut)
 Cross product of a constant vector and an equation vector. More...
 
void DotProductEqVectors (TEqVector *ev1, TEqVector *ev2, Tequation *eqOut)
 Dot product of two equation vectors. More...
 
void DotProductVectorEqVector (double *v, TEqVector *ev, Tequation *eqOut)
 Dot product of a constant vector and an equation vector. More...
 
void EvaluateEqVector (double *v, double *o, TEqVector *ev)
 Evaluates a vector of equations. More...
 
void EvaluateEqVectorInt (Tinterval *v, Tinterval *o, TEqVector *ev)
 Evaluates a vector of equations on intervals. More...
 
void DeleteEqVector (TEqVector *ev)
 Deletes an equation vector. More...
 

Function Documentation

void InitEqVector ( TEqVector ev)

Initializes a 3-d vector of equations.

Parameters
evThe equation vector to initilize.

Definition at line 15 of file eqvector.c.

References DIM_SP, and InitEquation().

Referenced by EqVectorFromVector().

void CopyEqVector ( TEqVector ev_dst,
TEqVector ev_src 
)

Initializes a vector of equations from another vector.

Parameters
ev_dstThe vector to initialize.
ev_srcThe vector from where to copy.

Definition at line 23 of file eqvector.c.

References CopyEquation(), and DIM_SP.

Referenced by CrossProductEqVectors(), and CrossProductVectorEqVector().

void EqVectorFromVector ( double *  v,
TEqVector ev 
)

Initializes a vector of equations from a constant vector.

Parameters
vThe constant vector.
evThe equation vector to initialize.

Definition at line 31 of file eqvector.c.

References DIM_SP, InitEqVector(), and SetEquationValue().

Tequation* GetEqVectorElement ( unsigned int  i,
TEqVector ev 
)

Gets an equation from a equation vector.

Parameters
iThe index of the element to get (0, 1, or 2).
evThe equation vector.

Definition at line 41 of file eqvector.c.

References DIM_SP, and Error().

Referenced by SHTransformFromEqVectors().

void ScaleEqVector ( double  ct,
TEqVector ev 
)

Multiplies all the equations in an equation vector by a constant.

Parameters
ctThe constant scale factor.
evThe equation vector to scale.

Definition at line 52 of file eqvector.c.

References CtScaleEquation(), and DIM_SP.

void VarScaleEqVector ( unsigned int  v,
TEqVector ev 
)

Multiplies all the equations in an equation vector by a variable.

Parameters
vThe identifier of the variable.
evThe equation vector to scale.

Definition at line 60 of file eqvector.c.

References DIM_SP, and VarScaleEquation().

void AccumulateEqVectors ( TEqVector ev,
double  ct,
TEqVector evOut 
)

Adds two vectors of equations where vector to accumulate is scaled by a constant factor.

Parameters
evThe equation vector to add.
ctThe scale factor.
evOutThe equation vector where to accumulate.

Definition at line 68 of file eqvector.c.

References AccumulateEquations(), and DIM_SP.

void VarAccumulateEqVectors ( TEqVector ev,
unsigned int  v,
TEqVector evOut 
)

Adds two vectors of equations where vector to accumulate is scaled by a variable factor.

Parameters
evThe equation vector to add.
vThe variable scale factor.
evOutThe equation vector where to accumulate.

Definition at line 76 of file eqvector.c.

References DIM_SP, and VarAccumulateEquations().

void VarAccumulateVector2EqVector ( double *  c,
unsigned int  v,
TEqVector evOut 
)

Accumulates a constant vector scaled by a variable to a equation vector.

Parameters
cThe constant vector to add.
vThe varible to scale.
evOutThe equation vector where to accumulate the scaled constant vector.

Definition at line 84 of file eqvector.c.

References AddCt2Monomial(), AddMonomial(), AddVariable2Monomial(), DeleteMonomial(), DIM_SP, InitMonomial(), NFUN, and ResetMonomial().

void Var2AccumulateVector2EqVector ( double *  c,
unsigned int  v1,
unsigned int  v2,
TEqVector evOut 
)

Accumulates a constant vector scaled by a couple of variables to a equation vector.

Parameters
cThe constant vector to add.
v1The first variable to scale.
v2The second variable to scale.
evOutThe equation vector where to accumulate the scaled constant vector.

Definition at line 100 of file eqvector.c.

References AddCt2Monomial(), AddMonomial(), AddVariable2Monomial(), DeleteMonomial(), DIM_SP, InitMonomial(), NFUN, and ResetMonomial().

void AccumulateVector2EqVector ( double *  v,
TEqVector ev 
)

Accumulates a constant vector to an equation vector.

Parameters
vThe constant vector.
evThe output equation vector.

Definition at line 118 of file eqvector.c.

References DIM_SP, GetEquationValue(), and SetEquationValue().

void CrossProductEqVectors ( TEqVector ev1,
TEqVector ev2,
TEqVector evOut 
)

Generats an equation vector as the cross product of two equation vectors.

Parameters
ev1The first vector to operate.
ev2The second vector to operate.
evOutThe result.

Definition at line 126 of file eqvector.c.

References AccumulateEquations(), CopyEqVector(), DeleteEquation(), DeleteEqVector(), and ProductEquations().

Referenced by SHTransformFromEqVectors().

void CrossProductVectorEqVector ( double *  v,
TEqVector ev,
TEqVector evOut 
)

Generats an equation vector as the cross product a constant vector and an equation vector.

Note that v x ev = -ev x v. Thus, this can not be directly used to comptue ev x v.

Parameters
vThe constant vector to operate.
evThe equation vector to operate.
evOutThe result.

Definition at line 152 of file eqvector.c.

References AccumulateEquations(), CopyEquation(), CopyEqVector(), CtScaleEquation(), and DeleteEqVector().

void DotProductEqVectors ( TEqVector ev1,
TEqVector ev2,
Tequation eqOut 
)

Generats an equation as the dot product of two equation vectors.

Parameters
ev1The first vector to operate.
ev2The second vector to operate.
eqOutThe resulting equation.

Definition at line 175 of file eqvector.c.

References AccumulateEquations(), DeleteEquation(), DIM_SP, InitEquation(), and ProductEquations().

void DotProductVectorEqVector ( double *  v,
TEqVector ev,
Tequation eqOut 
)

Generats an equation as the dot product of a constant vector and an equation vector.

Parameters
vThe constant vector to operate.
evThe equation vector to operate.
eqOutThe resulting equation.

Definition at line 190 of file eqvector.c.

References AccumulateEquations(), CopyEquation(), and CtScaleEquation().

void EvaluateEqVector ( double *  v,
double *  o,
TEqVector ev 
)

Evaluates a vector of equations on a given point.

Parameters
vThe array with the values for the variables.
oThe output constant vector. Space for the output must be allocated externally.
evThe equation vector to evaluate.

Definition at line 198 of file eqvector.c.

References DIM_SP, and EvaluateWholeEquation().

void EvaluateEqVectorInt ( Tinterval v,
Tinterval o,
TEqVector ev 
)

Evaluates a vector of equations on a given interval range.

Parameters
vThe array with the intervals for the variables.
oThe output interval vector. Space for the output must be allocated externally.
evThe equation vector to evaluate.

Definition at line 206 of file eqvector.c.

References DIM_SP, EvaluateEquationInt(), GetEquationValue(), and IntervalOffset().

void DeleteEqVector ( TEqVector ev)

Deallocates the memory used by an equation vector.

Parameters
evThe equation vector to release.

Definition at line 219 of file eqvector.c.

References DeleteEquation(), and DIM_SP.

Referenced by CrossProductEqVectors(), CrossProductVectorEqVector(), and SHTransformFromEqVectors().