14 #ifndef _DYLP_VECTOR_H
15 #define _DYLP_VECTOR_H
110 typedef union {
unsigned char fpchr[8] ;
double fpdbl ; } fpunion_t ;
117 #ifdef WORDS_BIGENDIAN
118 static fpunion_t QNaNbits
UNUSED = { { (
unsigned char)
'\177',
119 (
unsigned char)
'\377',
120 (
unsigned char)
'\377',
121 (
unsigned char)
'\377',
122 (
unsigned char)
'\377',
123 (
unsigned char)
'\377',
124 (
unsigned char)
'\377',
125 (
unsigned char)
'\376' } } ;
126 static fpunion_t SNaNbits
UNUSED = { { (
unsigned char)
'\177',
127 (
unsigned char)
'\360',
128 (
unsigned char)
'\0',
129 (
unsigned char)
'\0',
130 (
unsigned char)
'\0',
131 (
unsigned char)
'\0',
132 (
unsigned char)
'\0',
133 (
unsigned char)
'\001' } } ;
134 static fpunion_t Infbits UNUSED = { { (
unsigned char)
'\177',
135 (
unsigned char)
'\360',
136 (
unsigned char)
'\0',
137 (
unsigned char)
'\0',
138 (
unsigned char)
'\0',
139 (
unsigned char)
'\0',
140 (
unsigned char)
'\0',
141 (
unsigned char)
'\0' } } ;
143 static fpunion_t QNaNbits UNUSED = { { (
unsigned char)
'\376',
144 (
unsigned char)
'\377',
145 (
unsigned char)
'\377',
146 (
unsigned char)
'\377',
147 (
unsigned char)
'\377',
148 (
unsigned char)
'\377',
149 (
unsigned char)
'\377',
150 (
unsigned char)
'\177' } } ;
151 static fpunion_t SNaNbits UNUSED = { { (
unsigned char)
'\001',
152 (
unsigned char)
'\0',
153 (
unsigned char)
'\0',
154 (
unsigned char)
'\0',
155 (
unsigned char)
'\0',
156 (
unsigned char)
'\0',
157 (
unsigned char)
'\360',
158 (
unsigned char)
'\177' } } ;
159 static fpunion_t Infbits UNUSED = { { (
unsigned char)
'\0',
160 (
unsigned char)
'\0',
161 (
unsigned char)
'\0',
162 (
unsigned char)
'\0',
163 (
unsigned char)
'\0',
164 (
unsigned char)
'\0',
165 (
unsigned char)
'\360',
166 (
unsigned char)
'\177' } } ;
173 #ifndef DYLP_HAS_QUIET_NAN
174 # define quiet_nan(zz_dummy_zz) (QNaNbits.fpdbl)
183 #define HUGE_VAL (Infbits.fpdbl)
201 # define finite DYLP_ISFINITE
204 # define isnan DYLP_ISNAN
238 typedef struct {
int ndx ;
241 typedef struct {
int ndx ;
pkvec_struct * pkvec_new(int sze)
bool pkvec_resize(pkvec_struct *pkvec, int sze)
double exvec_2norm(double *vec, int len)
double exvec_infnorm(double *vec, int len, int *p_jmax)
double pkvec_2norm(pkvec_struct *vec)
double pkvec_dotexvec(pkvec_struct *pkvec, double *exvec)
void pkvec_free(pkvec_struct *pkvec)
bool pkvec_check(pkvec_struct *pkvec, const char *caller)
double exvec_1norm(double *vec, int len)
double exvec_ssq(double *vec, int len)