/*
* Copyright (C) 1997-2006 P. Dular, C. Geuzaine
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA.
*
* Please report all bugs and problems to <getdp@geuz.org>.
*/
#ifndef _CAL_VALUE_H_
#define _CAL_VALUE_H_
void Cal_CopyValue (struct Value *V1, struct Value *R);
void Cal_CopyValueArray (struct Value *V1, struct Value *R, int Nbr_Values);
void Cal_ZeroValue (struct Value *V1);
void Cal_AddValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_AddValueArray (struct Value *V1, struct Value *V2, struct Value *R, int Nbr_Values);
void Cal_SubstractValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_ProductValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_DivideValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_ModuloValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_CrossProductValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_PowerValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_RotateValue (struct Value *V1, struct Value *V2, struct Value *R);
void Cal_InvertValue (struct Value *V1, struct Value *R);
void Cal_DetValue (struct Value *V1, struct Value *R);
void Cal_TransposeValue (struct Value *V1, struct Value *R);
void Cal_TraceValue (struct Value *V1, struct Value *R);
void Cal_LessValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_GreaterValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_LessOrEqualValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_GreaterOrEqualValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_EqualValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_NotEqualValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_ApproxEqualValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_AndValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_OrValue (struct Value *V1, struct Value *V2, struct Value *R) ;
void Cal_NegValue (struct Value *V1) ;
void Cal_NotValue (struct Value *V1) ;
void Cal_SetHarmonicValue (struct Value *R) ;
void Cal_SetZeroHarmonicValue(struct Value *R, int Save_NbrHar) ;
void Cal_MultValue (struct Value * V1, double d, struct Value * R) ;
void Cal_AddMultValue (struct Value *V1, struct Value *V2, double d, struct Value *R) ;
void Cal_AddMultValueArray (struct Value *V1, struct Value *V2, double d, struct Value *R,int Nbr_Values) ;
void Cal_AddMultValue2 (struct Value *V1, double d1, struct Value *V2, double d2) ;
void Cal_ComplexProduct (double V1[], double V2[], double P[]);
void Cal_ComplexDivision (double V1[], double V2[], double P[]);
void Cal_ComplexInvert (double V1[], double P[]);
/* Debug */
void Print_Value (struct Value *A);
void Show_Value (struct Value *A);
/* From struct Value to array of doubles */
void Cal_ValueArray2DoubleArray(struct Value *V1, double *R, int Nbr_Values) ;
void Cal_AddValueArray2DoubleArray(struct Value *V1, double *R, int Nbr_Values) ;
#endif
syntax highlighted by Code2HTML, v. 0.9.1