1 // GetDP - Copyright (C) 1997-2021 P. Dular and C. Geuzaine, University of Liege
2 //
3 // See the LICENSE.txt file for license information. Please report all
4 // issues on https://gitlab.onelab.info/getdp/getdp/issues.
5 
6 #ifndef CAL_VALUE_H
7 #define CAL_VALUE_H
8 
9 #include <string>
10 #include <vector>
11 #include "ProData.h"
12 
13 void  Cal_CopyValue           (struct Value *V1, struct Value *R);
14 void  Cal_ZeroValue           (struct Value *V1);
15 
16 void  Cal_AddValue            (struct Value *V1, struct Value *V2, struct Value *R) ;
17 void  Cal_SubstractValue      (struct Value *V1, struct Value *V2, struct Value *R) ;
18 void  Cal_ProductValue        (struct Value *V1, struct Value *V2, struct Value *R) ;
19 void  Cal_SqrtValue           (struct Value *V1, struct Value *R) ;
20 void  Cal_DivideValue         (struct Value *V1, struct Value *V2, struct Value *R) ;
21 void  Cal_ModuloValue         (struct Value *V1, struct Value *V2, struct Value *R) ;
22 void  Cal_CrossProductValue   (struct Value *V1, struct Value *V2, struct Value *R) ;
23 void  Cal_PowerValue          (struct Value *V1, struct Value *V2, struct Value *R) ;
24 void  Cal_RotateValue         (struct Value *V1, struct Value *V2, struct Value *R);
25 void  Cal_InvertValue         (struct Value *V1, struct Value *R);
26 void  Cal_DetValue            (struct Value *V1, struct Value *R);
27 void  Cal_TransposeValue      (struct Value *V1, struct Value *R);
28 void  Cal_TraceValue          (struct Value *V1, struct Value *R);
29 
30 void  Cal_LessValue           (struct Value *V1, struct Value *V2, struct Value *R) ;
31 void  Cal_GreaterValue        (struct Value *V1, struct Value *V2, struct Value *R) ;
32 void  Cal_LessOrEqualValue    (struct Value *V1, struct Value *V2, struct Value *R) ;
33 void  Cal_GreaterOrEqualValue (struct Value *V1, struct Value *V2, struct Value *R) ;
34 void  Cal_EqualValue          (struct Value *V1, struct Value *V2, struct Value *R) ;
35 void  Cal_NotEqualValue       (struct Value *V1, struct Value *V2, struct Value *R) ;
36 void  Cal_ApproxEqualValue    (struct Value *V1, struct Value *V2, struct Value *R) ;
37 void  Cal_AndValue            (struct Value *V1, struct Value *V2, struct Value *R) ;
38 void  Cal_OrValue             (struct Value *V1, struct Value *V2, struct Value *R) ;
39 void  Cal_NegValue            (struct Value *V1) ;
40 void  Cal_NotValue            (struct Value *V1) ;
41 
42 void  Cal_SetHarmonicValue    (struct Value *R) ;
43 void  Cal_SetZeroHarmonicValue(struct Value *R, int Save_NbrHar) ;
44 void  Cal_MultValue           (struct Value * V1, double d, struct Value * R) ;
45 void  Cal_AddMultValue        (struct Value *V1, struct Value *V2, double d, struct Value *R) ;
46 void  Cal_AddMultValue2       (struct Value *V1, double d1, struct Value *V2, double d2) ;
47 
48 void  Cal_ComplexProduct  (double V1[], double V2[], double P[]);
49 void  Cal_ComplexDivision (double V1[], double V2[], double P[]);
50 void  Cal_ComplexInvert   (double V1[], double P[]);
51 
52 std::string Print_Value_ToString(struct Value *A);
53 void  Print_Value (struct Value *A, FILE *fp=0);
54 void  Show_Value (struct Value *A);
55 
56 void Export_Value(struct Value *A, std::vector<double> &out, List_T *harmonics=0,
57                   bool append=true);
58 
59 #endif
60