1 /****************************************************************************/ 2 /* vector.h */ 3 /****************************************************************************/ 4 /* */ 5 /* type VECTOR */ 6 /* */ 7 /* Copyright (C) 1992-1995 Tomas Skalicky. All rights reserved. */ 8 /* */ 9 /****************************************************************************/ 10 /* */ 11 /* ANY USE OF THIS CODE CONSTITUTES ACCEPTANCE OF THE TERMS */ 12 /* OF THE COPYRIGHT NOTICE (SEE FILE COPYRGHT.H) */ 13 /* */ 14 /****************************************************************************/ 15 16 #ifndef VECTOR_H 17 #define VECTOR_H 18 19 #include <stdlib.h> 20 21 #include "laspack/lastypes.h" 22 #include "laspack/elcmp.h" 23 #include "laspack/copyrght.h" 24 25 typedef struct { 26 char *Name; 27 size_t Dim; 28 InstanceType Instance; 29 int LockLevel; 30 double Multipl; 31 Boolean OwnData; 32 Real *Cmp; 33 } Vector; 34 35 void V_Constr(Vector *V, char *Name, size_t Dim, InstanceType Instance, 36 Boolean OwnData); 37 void V_Destr(Vector *V); 38 void V_SetName(Vector *V, char *Name); 39 char *V_GetName(Vector *V); 40 size_t V_GetDim(Vector *V); 41 void V_SetCmp(Vector *V, size_t Ind, Real Val); 42 void V_SetAllCmp(Vector *V, Real Val); 43 void V_SetRndCmp(Vector *V); 44 Real V_GetCmp(Vector *V, size_t Ind); 45 void V_AddCmp(Vector *V, size_t Ind, Real Val); 46 47 /* macros for fast access */ 48 #define V__SetCmp(PtrV, Ind, Val) (PtrV)->Cmp[Ind] = (Val) 49 #define V__GetCmp(PtrV, Ind) (PtrV)->Cmp[Ind] 50 #define V__AddCmp(PtrV, Ind, Val) (PtrV)->Cmp[Ind] += (Val) 51 52 void V_Lock(Vector *V); 53 void V_Unlock(Vector *V); 54 55 #endif /* VECTOR_H */ 56