LORENE
utilitaires.h
1/*
2 * Prototypes of various utilities for Lorene
3 *
4 */
5
6/*
7 * Copyright (c) 1999-2001 Eric Gourgoulhon
8 *
9 * This file is part of LORENE.
10 *
11 * LORENE is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
15 *
16 * LORENE is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with LORENE; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 *
25 */
26
27
28#ifndef __UTILITAIRES_H_
29#define __UTILITAIRES_H_
30
31
32/*
33 * $Id: utilitaires.h,v 1.16 2015/01/09 15:28:52 j_novak Exp $
34 * $Log: utilitaires.h,v $
35 * Revision 1.16 2015/01/09 15:28:52 j_novak
36 * New integration function for general non-equally-spaced grids.
37 *
38 * Revision 1.15 2014/10/13 08:52:37 j_novak
39 * Lorene classes and functions now belong to the namespace Lorene.
40 *
41 * Revision 1.14 2014/10/06 15:09:40 j_novak
42 * Modified #include directives to use c++ syntax.
43 *
44 * Revision 1.13 2014/07/04 12:09:06 j_novak
45 * New argument in zerosec(): a boolean (false by default) for aborting if the number of iteration is greater than the max.
46 *
47 * Revision 1.12 2014/04/25 10:43:50 j_novak
48 * The member 'name' is of type string now. Correction of a few const-related issues.
49 *
50 * Revision 1.11 2008/08/19 06:41:59 j_novak
51 * Minor modifications to avoid warnings with gcc 4.3. Most of them concern
52 * cast-type operations, and constant strings that must be defined as const char*
53 *
54 * Revision 1.10 2004/09/01 09:47:55 r_prix
55 * fixed/improved string-reading with read_variable(): allocates returned string
56 *
57 * Revision 1.9 2004/03/22 13:12:44 j_novak
58 * Modification of comments to use doxygen instead of doc++
59 *
60 * Revision 1.8 2003/12/17 23:12:30 r_prix
61 * replaced use of C++ <string> by standard ANSI char* to be backwards compatible
62 * with broken compilers like MIPSpro Compiler 7.2 on SGI Origin200. ;-)
63 *
64 * Revision 1.7 2003/12/05 15:05:53 r_prix
65 * added read_variable() for (C++-type) strings.
66 *
67 * Revision 1.6 2003/12/04 12:33:21 r_prix
68 * added prototypes and documentation for variable-reading functions
69 * (read_variable, load_file, load_file_buffered)
70 *
71 * Revision 1.5 2002/05/02 15:16:22 j_novak
72 * Added functions for more general bi-fluid EOS
73 *
74 * Revision 1.4 2002/04/16 08:06:44 j_novak
75 * Addition of zerosec_borne
76 *
77 * Revision 1.3 2002/04/11 09:19:46 j_novak
78 * Back to old version of zerosec
79 *
80 * Revision 1.2 2001/12/04 21:24:33 e_gourgoulhon
81 *
82 * New functions fwrite_be and fread_be for writing/reading in a
83 * binary file according to the big endian convention.
84 *
85 * Revision 1.1.1.1 2001/11/20 15:19:27 e_gourgoulhon
86 * LORENE
87 *
88 * Revision 1.6 2001/09/14 14:23:53 eric
89 * Ajout de la fonction zero_list.
90 *
91 * Revision 1.5 2001/05/29 16:11:21 eric
92 * Modif commentaires (mise en conformite Doc++ 3.4.7).
93 *
94 * Revision 1.4 1999/12/24 12:59:54 eric
95 * Ajout de la routine zero_premier.
96 *
97 * Revision 1.3 1999/12/15 15:39:42 eric
98 * *** empty log message ***
99 *
100 * Revision 1.2 1999/12/15 15:17:03 eric
101 * *** empty log message ***
102 *
103 * Revision 1.1 1999/12/15 09:41:47 eric
104 * Initial revision
105 *
106 *
107 * $Header: /cvsroot/Lorene/C++/Include/utilitaires.h,v 1.16 2015/01/09 15:28:52 j_novak Exp $
108 *
109 */
110
111#include "stdio.h"
112#include <cstring>
113
114namespace Lorene {
115class Param ;
116class Tbl ;
117
133void arrete(int a = 0) ;
134
153bool zero_premier(double (*f)(double, const Param&), const Param& par,
154 double a, double b, int n, double& a0, double& b0) ;
155
156
157
181double zerosec( double (*f)(double, const Param&), const Param& par,
182 double a, double b, double precis, int nitermax,
183 int& niter, bool abort=true) ;
184
207double zerosec_b( double (*f)(double, const Param&),const Param& par,
208 double a, double b, double precis, int nitermax,
209 int& niter) ;
210
235void zero_list( double (*f)(double, const Param&), const Param& par,
236 double xmin, double xmax, int nsub,
237 Tbl*& az, Tbl*& bz ) ;
238
252 Tbl integ1D(const Tbl& xx, const Tbl& ff) ;
253
271int fwrite_be(const int* aa, int size, int nb, FILE* fich) ;
272
290int fwrite_be(const double* aa, int size, int nb, FILE* fich) ;
291
309int fread_be(int* aa, int size, int nb, FILE* fich) ;
310
328int fread_be(double* aa, int size, int nb, FILE* fich) ;
329
330
337char *load_file(char *fname);
338
347char *load_file_buffered(char *fname);
348
367int read_variable(const char *fname, const char *var_name, char *fmt, void *varp);
368
370int read_variable(const char *fname, const char *var_name, int &var);
372int read_variable(const char *fname, const char *var_name, bool &var);
374int read_variable(const char *fname, const char *var_name, double &var);
376int read_variable (const char *fname, const char *var_name, char **str);
377
379void *MyMalloc (long bytes);
380
382int FS_filelength (FILE *f);
383
385void c_est_pas_fait(const char * ) ;
386
389}
390#endif
char * load_file_buffered(char *fname)
Returns pointer to data from a file using a buffer.
void zero_list(double(*f)(double, const Param &), const Param &par, double xmin, double xmax, int nsub, Tbl *&az, Tbl *&bz)
Locates approximatively all the zeros of a function in a given interval.
Definition zero_list.C:57
char * load_file(char *fname)
Read file into memory and returns pointer to data.
Tbl integ1D(const Tbl &xx, const Tbl &ff)
Integrates a function defined on an unequally-spaced grid, approximating it by piece parabolae.
int FS_filelength(FILE *f)
A portable routine to determine the length of a file.
void c_est_pas_fait(const char *)
Helpful function to say something is not implemented yet.
void arrete(int a=0)
Setting a stop point in a code.
Definition arrete.C:61
int fread_be(int *aa, int size, int nb, FILE *fich)
Reads integer(s) from a binary file according to the big endian convention.
Definition fread_be.C:69
bool zero_premier(double(*f)(double, const Param &), const Param &par, double a, double b, int n, double &a0, double &b0)
Locates the sub-interval containing the first zero of a function in a given interval.
void * MyMalloc(long bytes)
'Improved' malloc that sets memory to 0 and also auto-terminates on error.
double zerosec_b(double(*f)(double, const Param &), const Param &par, double a, double b, double precis, int nitermax, int &niter)
Finding the zero a function on a bounded domain.
int read_variable(const char *fname, const char *var_name, char *fmt, void *varp)
Reads a variable from file.
int fwrite_be(const int *aa, int size, int nb, FILE *fich)
Writes integer(s) into a binary file according to the big endian convention.
Definition fwrite_be.C:70
double zerosec(double(*f)(double, const Param &), const Param &par, double a, double b, double precis, int nitermax, int &niter, bool abort=true)
Finding the zero a function.
Definition zerosec.C:89
Lorene prototypes.
Definition app_hor.h:64