//==================================================================
// Code generated automatically
// Description: Partition class header
//==================================================================
#ifndef SATELLITE__testGEO_default_H
#define SATELLITE__testGEO_default_H

#include <INTEG_simula.h>

class SATELLITE__testGEO_default: public INTEG_simula
{
public:

	SATELLITE__testGEO_default(const char *mgr=NULL,const char *dirInstall=NULL,bool dmode=false);
	virtual void copyBack( double dyn[], double ldr[] );
	virtual void initBlocks( double dyn[], double ldr[], double *_time );
	virtual void fres( double *_time, double dyn[], double der[], double res[] );

	virtual void checkAsserts( double *_time);
	virtual void constraints( double *_time, double ev[],double dyn[],double ldr[]);
	virtual void evalWhen(double *_time, bool w[],bool cont[] );
	virtual void executeWhen(double *_time,  int index );
	virtual void evalZones( double *_time,  int branchZone[],bool cont[] );
	virtual INTEG_simula::t_initEvent* initEvents(int& nEvents,int& nWhen,int& nZones,int& nConstraints, const char**& whenTxt,const char**& zoneTxt,int *&zoneTxtIndex);
	virtual void initDelays();
	virtual void initInternalModels();

	virtual void extractSymbols();

	static SATELLITE__testGEO_default* s_current;
public: 
	void A6a4c74738f880c9497ef79a2d5c26010(int n,double mat[],int nstart);
	void A9c7f6750ad1855da473a532afaa051f0(double X[],double CMX[]);
	void A0daea1d810ae4f638e20557d22603a2f(int n17,double iV[],double iCMV[],int Index);
	double A019bab5f04c67b2980e631858dd4b791(double X[],double Y[]);
	double A37bff279528b6317bb6373d02308ca80(double X[]);
	void A0635b7f593d6f049ce66caf057d49668(double Small,double RoundingErrorAcceptable,std::string Message);
	void A142a138dd7f7edde3cd3b31f7c280be6(double X[],double eX[],std::string Message);
	void A7ad3331810bc4d38a98d3684189d2da1(int n,double X[],double eX[],int Index,std::string Message);
	std::string A718f4ee7a90c61514c3a9ceddb91063c(int n,double signal[]);
	double Ad45541ad370065f0c89d5eceabfbe70b(double radians);
	double A3f5f23a7a3907152dae2b7f68f204c63(double radians,int flag180);
	void A34abf7295c90f8265a8f8233dbb2a37e(double a,double X[],double b,double Y[],double c,double aXplusbYplusc[]);
	void A0f35e143d3a4ca8a6d524c3bd6aa862c(double a,double X[],double b,double aXplusb[]);
	double A01bfbe1edd393b2c1ca09d44c931495b(double degrees);
	void A5b9efacac279f8201146501a406519f9(double RSatSun[],double RSatEarth[],int * FlagEclipse,double * FractionSun);
	double Ad5577fc29943618f69ad5c843eba833c(double x,double y);
	void A2e8f4393cd4e00e633246fcac8ad105e(double X[],double Y[],double XxY[]);
	void A0d2cf00462b54839a48b1dc17df854a3(double Ixxyyzz[],double Ixyyzzx[],double InertiaMatrixSatFrozen[]);
	void A258ec9a890dd211ddeef7f6b9d43979a(double InertiaMatrix[],double Rdisplaced[],double Mass,double InertiaMatrixD[],int FromCOMNotToCOM);
	int A9e9021524afdf84d19ddc06b9483eb75(double Real);
	double Abae57cbe2695639296453083e5154d0e(std::string DDMMYYYYHHMMSS,double * Day1900);
	void Afcc4eadac593fa8a73a0762b2622034c(double JD,double ReMo[],double ReS[]);
	void A8ca45943fd19cec75139673798d21140(double Anglerad,double Xa,double Ya,double * xb,double * yb);
	void A8dc12acf768e6b12ebd39f2d10517c82(double CoordInA[],double PrecessionZB,double NutationU,double RotationZA,double CoordInB[]);
	void Aa5177a69817eb905f83f68ee777fe529(double CoordOrbitalPolar[],double Precession,double Nutation,double Rotation,double CoordECI[]);
	void A76451021569370217d096290951c830e(double altPer_o,double altApo_o,double OM_o,double inc_o,double om_o,double PHI_o,double R_o[],double V_o[],double error[]);
	void Af092bb27d524bbfb4d110dd5afc6a37f(double Q[],std::string Message);
	void Acdc743b4ce17098cd2fcaf4eab2b6e76(double Q[],double QMX[]);
	void A56574614adcf365a4620cd0f26dcfbe7(double Q1[],double Q2[],double Q1Q2[],std::string Message);
	void A706849dac78113deb5787361fa82321d(double OM,double inc,double omPHI,double Q[]);
	void Afc0207c8f1b43d38f6f00d2b331dc720(double psi,double theta,double phi,double Q[]);
	void A5081ea99bec2b8ca0ea52666ac8f7f22(double Qo[],double Q[]);
	void A18936a1f7169d6925ecb534df0335842(double Q[],double Qconjug[]);
	void A9ab77ad911c75c5ee22c569181273554(double Q[],double QMXhat[]);
	void A65edb06afa81ed47bb48b003cfffad0c(double Q[],double MatrixAtoB[],std::string Message);
	void A4734c95e5416810119e160e39b7d4cc3(double Q[],double MatrixEnum[]);
	void A673ab8dd8d269cc1158334fced60d24c(double InertiaMatrixSatFrozenComdry[],double OCOMdry[],double massDry,double InertiaMatrixFluidsCfluids[],double OCOMFluids[],double FluidMassTanks,double OCOM[],double InertiaMatrixSatFrozen[]);
	double A22c1adc231b377ecd584fbb6cfaefff6(double x,double y);
	void A3552299060f7c98d37a7a0d8c37eb81d(double R[],double V[],double * RAAN,double * inc,double * omPHI,double GMfocus,double Rfocus,double * AltApo,double * AltPer,double * Alt,double * Exc,double * om,double * Phi,double * sma);
	void Aed7dc2c11dad22ced17f49d6c0566a88(double V[],double CMV[]);
	void A9ec5c002b3ec152a1a2fc48d1658bcdc(double Wrot[],double DQmat[]);
	void A323f2b87d160fbb4d6b1756e2b19532c(double * psi,double * theta,double * phi,double Q[]);
	double A226af8a5dd1fafc5431aba9b0ab79462(double NodeOmega[],double NOmeg,double NAccel,double sinAlpha,double cosAlpha,double rho);
	double Ae3d23ead747eef5080f2dd0780dd1565(double Mom[],double OCOM[],double NOmeg,double NAccel,double sinAlpha,double cosAlpha,double rho,double OPoint[]);
	double A58d39c798cf21ee9da59291fcc4e750d(double A[],double B[],double * cosAlpha,double * sinAlpha);
	void A7e3eef3b3fb41ec3b95eb000dd6132a9(double OmegaXo[],double OmegaYo[],double OmegaZo[],double Mom[]);
	void A05270a6e1dc60e8d34e8fde61ecf7f7b(int n4,int Nodes,double Mom[],double OCOM[],double NOmeg,double NAccel,double sinAlpha,double cosAlpha,double rho[],double OTankNodes[],double IsoDeltaPmap[]);
	void A3538922b199e59bd7a7586f35c3974f5(int n4,int Nodes,double IsoDeltaPmap[],double IsoDeltaPmin[],double IsoDeltaPmax[]);
	void Ac1bf81150cedafec02bdcb41220855ae(int n4,int Nodes,int i,int l,int m,int n,double MinertiaVolume[],double dV_element,double OTankNodes[]);
	void A89a348f8b00d02597dab097b75f2b2c3(int n4,int Nodes,double IsoDeltaPmap[],double FlagBottom[],double VolumeFluid[],double dV_element,double Mom[],double OTankNodes[],double COMtank[],double SurfaceIsoDeltaP[],double dPoutlet[],int PointFreeSurfIndex[],double PointFreeSurface[],double VolumeFluidApprox[],double MapFreeSurface[],int * npt,double MinertiaVolume[]);

};
#endif
