00001
00010 #ifndef __C_VECTOR_H__
00011 #define __C_VECTOR_H__
00012
00013 #include "c_basic_math.h"
00014
00015 #ifdef __cplusplus
00016 extern "C" {
00017 #endif
00018
00020 #define MAX_VECTOR_DIM 64
00021
00023
00038 BM_STATUS initDblVector( double* vector, const unsigned int dim, const double value );
00039
00041
00056 BM_STATUS copyDblVector( double* dest, const double* source, const unsigned int dim );
00057
00059
00079 BM_STATUS addDblVector( double* result, const double* augend, const double* addend, const unsigned int dim );
00080
00082
00102 BM_STATUS subDblVector( double* result, const double* minuend, const double* subtrahend, const unsigned int dim );
00103
00105
00124 double innerProductDblVector( const double* multiplier, const double* multiplicand, const unsigned int dim, BM_STATUS* bms );
00125
00127
00147 BM_STATUS doubleMulDblVector( double* result, const double* vector, const unsigned int dim, const double scalar );
00148
00150
00170 BM_STATUS doubleDivDblVector( double* result, const double* vector, const unsigned int dim, const double scalar );
00171
00173
00194 BM_STATUS crossProductDblVector( double* result, const double* multiplier, const double* multiplicand, const unsigned int dim );
00195
00197
00213 double lengthDblVector( const double* vector, const unsigned int dim, BM_STATUS* bms );
00214
00216
00233 BM_STATUS invertDirectionDblVector( double* result, const double* vector, const unsigned int dim );
00234
00236
00254 int isNullDblVector( const double* vector, const unsigned int dim, BM_STATUS* bms );
00255
00257
00275 int is1DblVector( const double* vector, const unsigned int dim, BM_STATUS* bms );
00276
00278
00294 BM_STATUS directionDblVector( double* direction, const double* vector, const unsigned int dim );
00295
00297
00319 int compareLengthDblVector( const double* vector1, const double* vector2, const unsigned int dim, BM_STATUS* bms );
00320
00322
00341 double angleDblVector( const double* vector1, const double* vector2, const unsigned int dim, BM_STATUS* bms );
00342
00344
00365 int isEqualDblVector( const double* vector1, const double* vector2, const unsigned int dim, BM_STATUS* bms );
00366
00368
00391 int isParallelDblVector( const double* vector1, const double* vector2, const unsigned int dim, BM_STATUS* bms );
00392
00394
00415 int isOrthogonalDblVector( const double* vector1, const double* vector2, const unsigned int dim, BM_STATUS* bms );
00416
00417 #ifdef __cplusplus
00418 }
00419 #endif
00420
00421 #endif //__C_VECTOR_H__