00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00077 #ifndef _TESSEROIDS_GLQ_H_
00078 #define _TESSEROIDS_GLQ_H_
00079
00080
00083 extern const int GLQ_MAXIT;
00084
00085
00088 extern const double GLQ_MAXERROR;
00089
00090
00092 typedef struct glq_struct
00093 {
00094 int order;
00095 double *nodes;
00096 double *weights;
00097 double *nodes_unscaled;
00098 } GLQ;
00099
00100
00115 extern GLQ * glq_new(int order, double lower, double upper);
00116
00117
00122 extern void glq_free(GLQ *glq);
00123
00124
00143 extern int glq_set_limits(double lower, double upper, GLQ *glq);
00144
00145
00163 extern int glq_nodes(int order, double *nodes);
00164
00165
00191 extern int glq_next_root(double initial, int root_index, int order,
00192 double *roots);
00193
00194
00209 extern int glq_weights(int order, double *nodes, double *weights);
00210
00211 #endif