diff options
Diffstat (limited to 'dave')
-rwxr-xr-x | dave/AffineSolve | bin | 0 -> 65416 bytes | |||
-rw-r--r-- | dave/AffineSolve.c | 588 | ||||
-rw-r--r-- | dave/AffineSolve.c.CHARLES | 643 | ||||
-rw-r--r-- | dave/HMD_normals.csv | 32 | ||||
-rw-r--r-- | dave/HMD_points.csv | 32 | ||||
-rw-r--r-- | dave/Makefile | 4 | ||||
-rwxr-xr-x | dave/dclapack_test | bin | 12836 -> 12960 bytes | |||
-rw-r--r-- | dave/errors.txt | 2141 | ||||
-rw-r--r-- | dave/olddata/HMD_normals.csv | 32 | ||||
-rw-r--r-- | dave/olddata/HMD_points.csv | 32 | ||||
-rw-r--r-- | dave/olddata/ptinfo.csv | 88 | ||||
-rw-r--r-- | dave/ptinfo.csv | 88 |
12 files changed, 3594 insertions, 86 deletions
diff --git a/dave/AffineSolve b/dave/AffineSolve Binary files differnew file mode 100755 index 0000000..cc4d26e --- /dev/null +++ b/dave/AffineSolve diff --git a/dave/AffineSolve.c b/dave/AffineSolve.c index 36587e6..1c873d9 100644 --- a/dave/AffineSolve.c +++ b/dave/AffineSolve.c @@ -1,7 +1,6 @@ // // main.c -// AffineSolve -// +// Aff // Created by user on 3/2/17. // Copyright © 2017 user. All rights reserved. // @@ -10,10 +9,24 @@ #include <string.h> #include <stdlib.h> #include <math.h> - -#define LH_ID 0 +#include "dclapack.h" +#include <linmath.h> +#define LH_ID 1 #define NUM_HMD 32 +#define MAX_POINTS 128 +//#define _ABS(a) ( (a)<=0 ? -(a) : (a) ) +#define _SIGN(a) ( (a)<=0 ? -1.0f : 1.0f ) +#define RANDF ( (float)rand() / (float)RAND_MAX ) +#define PI 3.14159265358979323846264 + +#define STEP_SIZE_ROT 1.0 +#define STEP_SIZE_POS 1.0 +#define FALLOFF 0.99999 +#define NITER 2000000 +#define TOO_SMALL 0.0001 +#define ORTHOG_PENALTY 1.0 + float hmd_pos[NUM_HMD][3]; void ReadHmdPoints() { @@ -31,17 +44,35 @@ void ReadHmdPoints() fclose(fin); } -#define MAX_POINTS 128 -#define _ABS(a) ( (a)<=0 ? -(a) : (a) ) -#define _SIGN(a) ( (a)<=0 ? -1.0f : 1.0f ) -#define RANDF ( (float)rand() / (float)RAND_MAX ) +float hmd_angle[NUM_HMD][2]; +void ReadPtinfo() +{ + // Initialize to -9999 + int i; + for (i=0; i<NUM_HMD; i++) { hmd_angle[i][0]=-9999.0; hmd_angle[i][1]=-9999.0; } -#define STEP_SIZE_ROT 1.0 -#define STEP_SIZE_POS 1.0 -#define FALLOFF 0.99999 -#define NITER 2000000 -#define TOO_SMALL 0.0001 -#define ORTHOG_PENALTY 1.0 + // Read ptinfo.csv + FILE *fin = fopen("ptinfo.csv", "r"); + if (fin==NULL) { printf("ERROR: could not open ptinfo.csv for reading\n"); exit(1); } + while (!feof(fin)) + { + // Read the angle + int sen,lh,axis,count; + float angle, avglen, stddevang, stddevlen; + float max_outlier_length, max_outlier_angle; + int rt = fscanf( fin, "%d %d %d %d %f %f %f %f %f %f\n", + &sen, &lh, &axis, &count, + &angle, &avglen, &stddevang, &stddevlen, + &max_outlier_length, &max_outlier_angle); + if (rt != 10) { break; } + + // If it's valid, store in the result + if (lh == LH_ID && sen < NUM_HMD) { + hmd_angle[sen][axis] = angle; + } + } + fclose(fin); +} #define PRINT_MAT(A,M,N) { \ int m,n; \ @@ -54,6 +85,355 @@ void ReadHmdPoints() } \ } +#define CrossProduct(ox,oy,oz,a,b,c,x,y,z) { \ + ox=(b)*(z)-(c)*(y); \ + oy=(c)*(x)-(a)*(z); \ + oz=(a)*(y)-(b)*(x); } + +void OrthoSolve( + float T[4][4], // OUTPUT: 4x4 transformation matrix + FLOAT S_out[2][MAX_POINTS], // OUTPUT: array of screenspace points + FLOAT S_in[2][MAX_POINTS], // INPUT: array of screenspace points + FLOAT X_in[3][MAX_POINTS], // INPUT: array of offsets + int nPoints) +{ + int i,j,k; + FLOAT R[3][3]; // OUTPUT: 3x3 rotation matrix + FLOAT trans[3]; // INPUT: x,y,z translation vector + + //-------------------- + // Remove the center of the HMD offsets, and the screen space + //-------------------- + FLOAT xbar[3] = {0.0, 0.0, 0.0}; + FLOAT sbar[2] = {0.0, 0.0}; + FLOAT S[2][MAX_POINTS]; + FLOAT X[3][MAX_POINTS]; + FLOAT inv_nPoints = 1.0 / nPoints; + for (i=0; i<nPoints; i++) { + xbar[0] += X_in[0][i]; + xbar[1] += X_in[1][i]; + xbar[2] += X_in[2][i]; + sbar[0] += S_in[0][i]; + sbar[1] += S_in[1][i]; + } + for (j=0; j<3; j++) { xbar[j] *= inv_nPoints; } + for (j=0; j<2; j++) { sbar[j] *= inv_nPoints; } + for (i=0; i<nPoints; i++) { + X[0][i] = X_in[0][i] - xbar[0]; + X[1][i] = X_in[1][i] - xbar[1]; + X[2][i] = X_in[2][i] - xbar[2]; + S[0][i] = S_in[0][i] - sbar[0]; + S[1][i] = S_in[1][i] - sbar[1]; + } + + //-------------------- + // Solve for the morph matrix + // S = M X + // thus + // (SX^t)(XX^t)^-1 = M + //-------------------- + FLOAT Xt[MAX_POINTS][3]; + FLOAT XXt[3][3]; + FLOAT invXXt[3][3]; + FLOAT SXt[2][3]; + FLOAT M[2][3]; // Morph matrix! (2 by 3) + TRANSP(X,Xt,3,nPoints); + MUL(X,Xt,XXt,3,nPoints,3); + MUL(S,Xt,SXt,2,nPoints,3); + INV(XXt,invXXt,3); + MUL(SXt,invXXt,M,2,3,3); +//PRINT(M,2,3); + +// Double checking work +FLOAT S_morph[2][MAX_POINTS]; +MUL(M,X,S_morph,2,3,nPoints); +for (i=0; i<nPoints; i++) { S_morph[0][i]+=sbar[0]; S_morph[1][i]+=sbar[1]; } + + //-------------------- + // Solve for the non-trivial vector + // uf -- vector that goes into the camera + //-------------------- + FLOAT uM[3][3] = { + { M[0][0], M[0][1], M[0][2] }, + { M[1][0], M[1][1], M[1][2] }, + { 3.14567, -1.2345, 4.32567 } }; // Morph matrix with appended row +//PRINT(uM,3,3); +// ToDo: Pick a number for the bottom that is NOT linearly separable with M[0] and M[1] + FLOAT B[3][1] = { {0.0}, {0.0}, {1.0} }; + FLOAT inv_uM[3][3]; + FLOAT uf[3][1]; + INV(uM,inv_uM,3); + MUL(inv_uM,B,uf,3,3,1); + + //-------------------- + // Solve for unit length vector + // f that goes into the camera + //-------------------- + FLOAT uf_len = sqrt( uf[0][0]*uf[0][0] + uf[1][0]*uf[1][0] + uf[2][0]*uf[2][0] ); + FLOAT f[3][1] = { {uf[0][0]/uf_len}, {uf[1][0]/uf_len}, {uf[2][0]/uf_len} }; +//PRINT(uf,3,1); +//PRINT(f,3,1); + +//FLOAT check[3][1]; +//MUL(uM,uf,check,3,3,1); +//PRINT(check,3,1); + + //-------------------- + // take cross products to get vectors u,r + //-------------------- + FLOAT u[3][1], r[3][1]; + CrossProduct(u[0][0],u[1][0],u[2][0],f[0][0],f[1][0],f[2][0],1.0,0.0,0.0); + FLOAT inv_ulen = 1.0 / sqrt( u[0][0]*u[0][0] + u[1][0]*u[1][0] + u[2][0]*u[2][0] ); + u[0][0]*=inv_ulen; u[1][0]*=inv_ulen; u[2][0]*=inv_ulen; + CrossProduct(r[0][0],r[1][0],r[2][0],f[0][0],f[1][0],f[2][0],u[0][0],u[1][0],u[2][0]); +//PRINT(u,3,1); +//PRINT(r,3,1); + + //-------------------- + // Use morph matrix to get screen space + // uhat,rhat + //-------------------- + FLOAT uhat[2][1], rhat[2][1], fhat[2][1]; + MUL(M,f,fhat,2,3,1); + MUL(M,u,uhat,2,3,1); + MUL(M,r,rhat,2,3,1); + FLOAT fhat_len = sqrt( fhat[0][0]*fhat[0][0] + fhat[1][0]*fhat[1][0] ); + FLOAT uhat_len = sqrt( uhat[0][0]*uhat[0][0] + uhat[1][0]*uhat[1][0] ); + FLOAT rhat_len = sqrt( rhat[0][0]*rhat[0][0] + rhat[1][0]*rhat[1][0] ); + FLOAT urhat_len = 0.5 * (uhat_len + rhat_len); +/* +printf("fhat %f %f (len %f)\n", fhat[0][0], fhat[1][0], fhat_len); +printf("uhat %f %f (len %f)\n", uhat[0][0], uhat[1][0], uhat_len); +printf("rhat %f %f (len %f)\n", rhat[0][0], rhat[1][0], rhat_len); +*/ +// FLOAT ydist1 = 1.0 / uhat_len; //0.25*PI / uhat_len; +// FLOAT ydist2 = 1.0 / rhat_len; //0.25*PI / rhat_len; + FLOAT ydist = 1.0 / urhat_len; + //printf("ydist1 %f ydist2 %f ydist %f\n", ydist1, ydist2, ydist); + + //-------------------- + // Rescale the axies to be of the proper length + //-------------------- + FLOAT x[3][1] = { {M[0][0]*ydist}, {0.0}, {M[1][0]*ydist} }; + FLOAT y[3][1] = { {M[0][1]*ydist}, {0.0}, {M[1][1]*ydist} }; + FLOAT z[3][1] = { {M[0][2]*ydist}, {0.0}, {M[1][2]*ydist} }; + + // we know the distance into (or out of) the camera for the z axis, + // but we don't know which direction . . . + FLOAT x_y = sqrt(1.0 - x[0][0]*x[0][0] - x[2][0]*x[2][0]); + FLOAT y_y = sqrt(1.0 - y[0][0]*y[0][0] - y[2][0]*y[2][0]); + FLOAT z_y = sqrt(1.0 - z[0][0]*z[0][0] - z[2][0]*z[2][0]); + + if( x_y != x_y ) x_y = 0; + if( y_y != y_y ) y_y = 0; + if( z_y != z_y ) z_y = 0; + +/* + // Exhaustively flip the minus sign of the z axis until we find the right one . . . + FLOAT bestErr = 9999.0; + FLOAT xy_dot2 = x[0][0]*y[0][0] + x[2][0]*y[2][0]; + FLOAT yz_dot2 = y[0][0]*z[0][0] + y[2][0]*z[2][0]; + FLOAT zx_dot2 = z[0][0]*x[0][0] + z[2][0]*x[2][0]; + for (i=0;i<2;i++) { + for (j=0;j<2;j++) { + for(k=0;k<2;k++) { + + // Calculate the error term + FLOAT xy_dot = xy_dot2 + x_y*y_y; + FLOAT yz_dot = yz_dot2 + y_y*z_y; + FLOAT zx_dot = zx_dot2 + z_y*x_y; + FLOAT err = _ABS(xy_dot) + _ABS(yz_dot) + _ABS(zx_dot); + + // Calculate the handedness + FLOAT cx,cy,cz; + CrossProduct(cx,cy,cz,x[0][0],x_y,x[2][0],y[0][0],y_y,y[2][0]); + FLOAT hand = cx*z[0][0] + cy*z_y + cz*z[2][0]; + printf("err %f hand %f\n", err, hand); + + // If we are the best right-handed frame so far + //if (hand > 0 && err < bestErr) { x[1][0]=x_y; y[1][0]=y_y; z[1][0]=z_y; bestErr=err; } + if ( i == 0 && j == 1 && k == 0) { x[1][0]=x_y; y[1][0]=y_y; z[1][0]=z_y; bestErr=err; } + z_y = -z_y; + } + y_y = -y_y; + } + x_y = -x_y; + } + printf("bestErr %f\n", bestErr); +*/ + + //------------------------- + // A test version of the rescaling to the proper length + //------------------------- + FLOAT ydist2; + FLOAT bestBestErr = 9999.0; + FLOAT bestYdist = 0; + for (ydist2=ydist-0.1; ydist2<ydist+0.1; ydist2+=0.0001) + { + FLOAT x2[3][1] = { {M[0][0]*ydist2}, {0.0}, {M[1][0]*ydist2} }; + FLOAT y2[3][1] = { {M[0][1]*ydist2}, {0.0}, {M[1][1]*ydist2} }; + FLOAT z2[3][1] = { {M[0][2]*ydist2}, {0.0}, {M[1][2]*ydist2} }; + + // we know the distance into (or out of) the camera for the z axis, + // but we don't know which direction . . . + FLOAT x_y = sqrt(1.0 - x2[0][0]*x2[0][0] - x2[2][0]*x2[2][0]); + FLOAT y_y = sqrt(1.0 - y2[0][0]*y2[0][0] - y2[2][0]*y2[2][0]); + FLOAT z_y = sqrt(1.0 - z2[0][0]*z2[0][0] - z2[2][0]*z2[2][0]); + + // Exhaustively flip the minus sign of the z axis until we find the right one . . . + FLOAT bestErr = 9999.0; + FLOAT xy_dot2 = x2[0][0]*y2[0][0] + x2[2][0]*y2[2][0]; + FLOAT yz_dot2 = y2[0][0]*z2[0][0] + y2[2][0]*z2[2][0]; + FLOAT zx_dot2 = z2[0][0]*x2[0][0] + z2[2][0]*x2[2][0]; + for (i=0;i<2;i++) { + for (j=0;j<2;j++) { + for(k=0;k<2;k++) { + + // Calculate the error term + FLOAT xy_dot = xy_dot2 + x_y*y_y; + FLOAT yz_dot = yz_dot2 + y_y*z_y; + FLOAT zx_dot = zx_dot2 + z_y*x_y; + FLOAT err = _ABS(xy_dot) + _ABS(yz_dot) + _ABS(zx_dot); + + // Calculate the handedness + FLOAT cx,cy,cz; + CrossProduct(cx,cy,cz,x2[0][0],x_y,x2[2][0],y2[0][0],y_y,y2[2][0]); + FLOAT hand = cx*z2[0][0] + cy*z_y + cz*z2[2][0]; +// printf("err %f hand %f\n", err, hand); + + // If we are the best right-handed frame so far + if (hand > 0 && err < bestErr) { x2[1][0]=x_y; y2[1][0]=y_y; z2[1][0]=z_y; bestErr=err; } + z_y = -z_y; + } + y_y = -y_y; + } + x_y = -x_y; + } + printf("ydist2 %f bestErr %f\n",ydist2,bestErr); + + if (bestErr < bestBestErr) { + memcpy(x,x2,3*sizeof(FLOAT)); + memcpy(y,y2,3*sizeof(FLOAT)); + memcpy(z,z2,3*sizeof(FLOAT)); + bestBestErr = bestErr; + bestYdist = ydist2; + } + } + ydist = bestYdist; + +/* + for (i=0; i<nPoints; i++) { + float x1 = x[0][0]*X[0][i] + y[0][0]*X[1][i] + z[0][0]*X[2][i]; + float y1 = x[1][0]*X[0][i] + y[1][0]*X[1][i] + z[1][0]*X[2][i]; + float z1 = x[2][0]*X[0][i] + y[2][0]*X[1][i] + z[2][0]*X[2][i]; + printf("x1z1 %f %f y1 %f\n", x1, z1, y1); + } +*/ +/* + //-------------------- + // Combine uhat and rhat to figure out the unit x-vector + //-------------------- + FLOAT xhat[2][1] = { {0.0}, {1.0} }; + FLOAT urhat[2][2] = { + {uhat[0][0], uhat[1][0]}, + {rhat[0][0], rhat[1][0]} }; + FLOAT inv_urhat[2][2]; + FLOAT ab[2][1]; + INV(urhat,inv_urhat,2); + MUL(inv_urhat,xhat,ab,2,2,1); +PRINT(ab,2,1); + FLOAT a = ab[0][0], b = ab[1][0]; + + //------------------- + // calculate the xyz coordinate system + //------------------- + FLOAT y[3][1] = { {f[0][0]}, {f[1][0]}, {f[2][0]} }; + FLOAT x[3][1] = { {a*u[0][0] + b*r[0][0]}, {a*u[1][0] + b*r[1][0]}, {a*u[2][0] + b*r[2][0]} }; + FLOAT inv_xlen = 1.0 / sqrt( x[0][0]*x[0][0] + x[1][0]*x[1][0] + x[2][0]*x[2][0] ); + x[0][0]*=inv_xlen; x[1][0]*=inv_xlen; x[2][0]*=inv_xlen; + FLOAT z[3][1]; + CrossProduct(z[0][0],z[1][0],z[2][0],x[0][0],x[1][0],x[2][0],y[0][0],y[1][0],y[2][0]); +*/ + // Store into the rotation matrix + for (i=0; i<3; i++) { R[i][0] = x[i][0]; R[i][1] = y[i][0]; R[i][2] = z[i][0]; } +//PRINT(R,3,3); + + //------------------- + // Calculate the translation of the centroid + //------------------- + trans[0]=tan(sbar[0]); trans[1]=1.0; trans[2]=tan(sbar[1]); + FLOAT inv_translen = ydist / sqrt( trans[0]*trans[0] + trans[1]*trans[1] + trans[2]*trans[2] ); + trans[0]*=inv_translen; trans[1]*=inv_translen; trans[2]*=inv_translen; + + //------------------- + // Add in the centroid point + //------------------- + trans[0] -= xbar[0]*R[0][0] + xbar[1]*R[0][1] + xbar[2]*R[0][2]; + trans[1] -= xbar[0]*R[1][0] + xbar[1]*R[1][1] + xbar[2]*R[1][2]; + trans[2] -= xbar[0]*R[2][0] + xbar[1]*R[2][1] + xbar[2]*R[2][2]; + FLOAT transdist = sqrt( trans[0]*trans[0] + trans[1]*trans[1] + trans[2]*trans[2] ); + + //------------------- + // Pack into the 4x4 transformation matrix + //------------------- + T[0][0]=R[0][0]; T[0][1]=R[0][1]; T[0][2]=R[0][2]; T[0][3]=trans[0]; + T[1][0]=R[1][0]; T[1][1]=R[1][1]; T[1][2]=R[1][2]; T[1][3]=trans[1]; + T[2][0]=R[2][0]; T[2][1]=R[2][1]; T[2][2]=R[2][2]; T[2][3]=trans[2]; + T[3][0]=0.0; T[3][1]=0.0; T[3][2]=0.0; T[3][3]=1.0; + + PRINT_MAT(T,4,4); + //------------------- + // Plot the output points + //------------------- + for (i=0; i<nPoints; i++) { + float Tx = T[0][0]*X_in[0][i] + T[0][1]*X_in[1][i] + T[0][2]*X_in[2][i] + T[0][3]; + float Ty = T[1][0]*X_in[0][i] + T[1][1]*X_in[1][i] + T[1][2]*X_in[2][i] + T[1][3]; + float Tz = T[2][0]*X_in[0][i] + T[2][1]*X_in[1][i] + T[2][2]*X_in[2][i] + T[2][3]; + S_out[0][i] = atan2(Tx, Ty); // horiz + S_out[1][i] = atan2(Tz, Ty); // vert + //S_out[0][i] = Tx; + //S_out[1][i] = Tz; + printf("point %i Txyz %f %f %f in %f %f out %f %f morph %f %f\n", i, Tx,Ty,Tz, S_in[0][i], S_in[1][i], S_out[0][i], S_out[1][i], S_morph[0][i], S_morph[1][i]); + } + + + + + float quat[4]; + float posoff[3] = { trans[0], trans[1], trans[2] }; + float MT[4][4]; + //matrix44transpose( MT, &T[0][0] ); + matrix44copy( &MT[0][0], &T[0][0] ); + +//QUAT: 0.657864 -0.305763 0.128486 0.265895 = 0.783252 +//QUAT: 0.657864 0.305763 -0.128486 -0.265895 = 0.783252 + + + quatfrommatrix( quat, &MT[0][0] ); + printf( "QUAT: %f %f %f %f = %f\n", quat[0], quat[1], quat[2], quat[3], quatmagnitude(quat) ); + //quat[2] -= 0.005; //fixes up lh0 in test data set. + quatnormalize( quat, quat ); + printf( "QUAT: %f %f %f %f = %f\n", quat[0], quat[1], quat[2], quat[3], quatmagnitude(quat) ); + + + for( i = 0; i <nPoints;i++ ) + { + float pt[3] = { X_in[0][i], X_in[1][i], X_in[2][i] }; + quatrotatevector( pt, quat, pt ); + add3d( pt, pt, posoff ); + printf( "%f %f %f OUT %f %f %f ANGLE %f %f AOUT %f %f\n", + X_in[0][i], X_in[1][i], X_in[2][i], pt[0], pt[1], pt[2], + S_in[0][i], S_in[1][i], atan2( pt[0], pt[1] ), atan2( pt[2], pt[1] ) ); + } + quattomatrix( &MT[0][0], quat ); + PRINT_MAT(MT,4,4); + + + +// printf("xbar %f %f %f\n", xbar[0], xbar[1], xbar[2]); +// printf("trans %f %f %f dist: %f\n", trans[0], trans[1], trans[2], transdist); +} + void AffineSolve( float T[4][4], // OUTPUT: transform float O[MAX_POINTS][4], // INPUT: points, offsets @@ -102,8 +482,8 @@ void AffineSolve( errorSq += Ei*Ei; } - printf("%d %f %f %f %f\n", iter, T[0][3], T[1][3], T[2][3], sqrt(errorSq)); - +// printf("%d %f %f %f %f\n", iter, T[0][3], T[1][3], T[2][3], sqrt(errorSq)); +//exit(1); // Constrain the gradient (such that dot products are zero) if (constrain) { @@ -228,95 +608,133 @@ void AffineSolve( } } } - + float dist = sqrt(T[0][3]*T[0][3] + T[1][3]*T[1][3] + T[2][3]*T[2][3]); + printf("AffineSolve: pos: %f %f %f dist: %f\n", T[0][3], T[1][3], T[2][3], dist); } int main() { - int i,j,k; + int i,j,k,sen,axis; + + // Read the data files + ReadHmdPoints(); + ReadPtinfo(); + + //------------------------- + // Package the lighthouse data for "AffineSolve" + //------------------------- + + // Data for the "iterative" affine solve formula float Tcalc[4][4]; float O[MAX_POINTS][4]; float N[MAX_POINTS][3]; float D[MAX_POINTS]; - int nPoints = 0; - - // Read the hmd points - ReadHmdPoints(); - - //------------------------- - // Read the lighthouse data - //------------------------- - FILE *fin = fopen("ptinfo.csv", "r"); - if (fin==NULL) { printf("ERROR: could not open ptinfo.csv for reading\n"); exit(1); } - while (!feof(fin)) + int nPlanes = 0; + + for (sen=0; sen<NUM_HMD; sen++) { - // Read the angle - int sen,lh,axis,count; - float angle, avglen, stddevang, stddevlen; - float max_outlier_length, max_outlier_angle; - int rt = fscanf( fin, "%d %d %d %d %f %f %f %f %f %f\n", - &sen, &lh, &axis, &count, - &angle, &avglen, &stddevang, &stddevlen, - &max_outlier_length, &max_outlier_angle); - if (rt != 10) { break; } - - if (lh == LH_ID && sen < NUM_HMD) { - // Set the offset - O[nPoints][0] = hmd_pos[sen][0]; - O[nPoints][1] = hmd_pos[sen][1]; - O[nPoints][2] = hmd_pos[sen][2]; - O[nPoints][3] = 1.0; + for (axis=0; axis<2; axis++) + { + if (hmd_angle[sen][axis] != -9999.0) + { + // Set the offset + O[nPlanes][0] = hmd_pos[sen][0]; + O[nPlanes][1] = hmd_pos[sen][1]; + O[nPlanes][2] = hmd_pos[sen][2]; + O[nPlanes][3] = 1.0; - // Calculate the plane equation - if (axis == 1) { // Horizontal - N[nPoints][0] = -cos(angle); - N[nPoints][1] = -sin(angle); - N[nPoints][2] = 0.0; - D[nPoints] = 0.0; - } else { // Vertical - N[nPoints][0] = 0.0; - N[nPoints][1] = -sin(angle); - N[nPoints][2] = cos(angle); - D[nPoints] = 0.0; + // Calculate the plane equation + if (axis == 0) { // Horizontal + N[nPlanes][0] = -cos(hmd_angle[sen][axis]); + N[nPlanes][1] = -sin(hmd_angle[sen][axis]); + N[nPlanes][2] = 0.0; + D[nPlanes] = 0.0; + } else { // Vertical + N[nPlanes][0] = 0.0; + N[nPlanes][1] = -sin(hmd_angle[sen][axis]); + N[nPlanes][2] = cos(hmd_angle[sen][axis]); + D[nPlanes] = 0.0; + } + + printf("plane %d O %.3f %.3f %.3f %.3f N %.3f %.3f %.3f D %.3f\n", + nPlanes, + O[nPlanes][0], O[nPlanes][1], O[nPlanes][2], O[nPlanes][3], + N[nPlanes][0], N[nPlanes][1], N[nPlanes][2], + D[nPlanes]); + nPlanes++; } - - printf("pt %d O %.3f %.3f %.3f %.3f N %.3f %.3f %.3f D %.3f\n", - nPoints, - O[nPoints][0], O[nPoints][1], O[nPoints][2], O[nPoints][3], - N[nPoints][0], N[nPoints][1], N[nPoints][2], - D[nPoints]); - - nPoints++; } } - fclose(fin); + - printf("nPoints %d\n", nPoints); + printf("nPlanes %d\n", nPlanes); - // Run the calculation for Tcalc - int run; - //for (run=0; run<100; run++) { - - // Initialize Tcalc to the identity matrix - //memcpy(Tcalc, Torig, 4*4*sizeof(float)); - memset(Tcalc, 0, 4*4*sizeof(float)); - for (i=0; i<4; i++) { Tcalc[i][i] = 1.0f; } - - // Solve it! - AffineSolve( - Tcalc, // OUTPUT: transform - O, // INPUT: points, offsets - N, // INPUT: plane normals - D, // INPUT: plane offsets - nPoints, NITER, - STEP_SIZE_ROT, STEP_SIZE_POS, FALLOFF, - 1); //} PRINT_MAT(Tcalc,4,4); + //-------------------------------------------------- + // Package the data for "OrthoSolve" + //-------------------------------------------------- + + // Data for the "fake" ortho solve formula + float Tortho[4][4]; // OUTPUT: 4x4 transformation matrix + FLOAT S_out[2][MAX_POINTS]; // INPUT: array of screenspace points + FLOAT S_in[2][MAX_POINTS]; // INPUT: array of screenspace points + FLOAT X_in[3][MAX_POINTS]; // INPUT: array of offsets + int nPoints=0; + + // Transform into the "OrthoSolve" format + for (sen=0; sen<NUM_HMD; sen++) + { + if (hmd_angle[sen][0] != -9999.0 && hmd_angle[sen][1] != -9999.0) + { + S_in[0][nPoints] = hmd_angle[sen][0]; + S_in[1][nPoints] = hmd_angle[sen][1]; + X_in[0][nPoints] = hmd_pos[sen][0]; + X_in[1][nPoints] = hmd_pos[sen][1]; + X_in[2][nPoints] = hmd_pos[sen][2]; + nPoints++; + } + } + printf("OrthoSolve nPoints %d\n", nPoints); + + //-------------------------------------------------- + // Run the "OrthoSolve" and then the "AffineSolve" + //-------------------------------------------------- + + int loop; + for (loop=0; loop<1; loop++) + { + // Run OrthoSolve + OrthoSolve( + Tortho, // OUTPUT: 4x4 transformation matrix + S_out, // OUTPUT: array of output screenspace points + S_in, // INPUT: array of screenspace points + X_in, // INPUT: array of offsets + nPoints); + } + + // Run the calculation for Tcalc + //int run; + //for (run=0; run<100; run++) { +/* + // Initialize Tcalc to the identity matrix + memcpy(Tcalc, Tortho, 4*4*sizeof(float)); + //memset(Tcalc, 0, 4*4*sizeof(float)); + //for (i=0; i<4; i++) { Tcalc[i][i] = 1.0f; } + + // Solve it! + AffineSolve( + Tcalc, // OUTPUT: transform + O, // INPUT: points, offsets + N, // INPUT: plane normals + D, // INPUT: plane offsets + nPlanes, NITER, + STEP_SIZE_ROT, STEP_SIZE_POS, FALLOFF, + 1); +*/ // insert code here... - printf("Hello, World!\n"); return 0; } diff --git a/dave/AffineSolve.c.CHARLES b/dave/AffineSolve.c.CHARLES new file mode 100644 index 0000000..cb62ef6 --- /dev/null +++ b/dave/AffineSolve.c.CHARLES @@ -0,0 +1,643 @@ +// +// main.c +// Aff +// Created by user on 3/2/17. +// Copyright © 2017 user. All rights reserved. +// + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <math.h> +#include "dclapack.h" + +#define LH_ID 1 +#define NUM_HMD 32 + +#define MAX_POINTS 128 +//#define _ABS(a) ( (a)<=0 ? -(a) : (a) ) +#define _SIGN(a) ( (a)<=0 ? -1.0f : 1.0f ) +#define RANDF ( (float)rand() / (float)RAND_MAX ) +#define PI 3.14159265358979323846264 + +#define STEP_SIZE_ROT 1.0 +#define STEP_SIZE_POS 1.0 +#define FALLOFF 0.99999 +#define NITER 2000000 +#define TOO_SMALL 0.0001 +#define ORTHOG_PENALTY 1.0 + +float hmd_pos[NUM_HMD][3]; +void ReadHmdPoints() +{ + int i; + FILE *fin = fopen("HMD_points.csv","r"); + if (fin==NULL) { + printf("ERROR: could not open HMD_points.csv for reading\n"); + exit(1); + } + + for (i=0; i<NUM_HMD; i++) { + fscanf(fin, "%f %f %f", &(hmd_pos[i][0]), &(hmd_pos[i][1]), &(hmd_pos[i][2])); + } + + fclose(fin); +} + +float hmd_angle[NUM_HMD][2]; +void ReadPtinfo() +{ + // Initialize to -9999 + int i; + for (i=0; i<NUM_HMD; i++) { hmd_angle[i][0]=-9999.0; hmd_angle[i][1]=-9999.0; } + + // Read ptinfo.csv + FILE *fin = fopen("ptinfo.csv", "r"); + if (fin==NULL) { printf("ERROR: could not open ptinfo.csv for reading\n"); exit(1); } + while (!feof(fin)) + { + // Read the angle + int sen,lh,axis,count; + float angle, avglen, stddevang, stddevlen; + float max_outlier_length, max_outlier_angle; + int rt = fscanf( fin, "%d %d %d %d %f %f %f %f %f %f\n", + &sen, &lh, &axis, &count, + &angle, &avglen, &stddevang, &stddevlen, + &max_outlier_length, &max_outlier_angle); + if (rt != 10) { break; } + + // If it's valid, store in the result + if (lh == LH_ID && sen < NUM_HMD) { + hmd_angle[sen][axis] = angle; + } + } + fclose(fin); +} + +#define PRINT_MAT(A,M,N) { \ + int m,n; \ + printf(#A "\n"); \ + for (m=0; m<M; m++) { \ + for (n=0; n<N; n++) { \ + printf("%f\t", A[m][n]); \ + } \ + printf("\n"); \ + } \ +} + +#define CrossProduct(ox,oy,oz,a,b,c,x,y,z) { \ + ox=(b)*(z)-(c)*(y); \ + oy=(c)*(x)-(a)*(z); \ + oz=(a)*(y)-(b)*(x); } + +void OrthoSolve( + float T[4][4], // OUTPUT: 4x4 transformation matrix + FLOAT S_out[2][MAX_POINTS], // OUTPUT: array of screenspace points + FLOAT S_in[2][MAX_POINTS], // INPUT: array of screenspace points + FLOAT X_in[3][MAX_POINTS], // INPUT: array of offsets + int nPoints) +{ + int i,j,k; + FLOAT R[3][3]; // OUTPUT: 3x3 rotation matrix + FLOAT trans[3]; // INPUT: x,y,z translation vector + + //-------------------- + // Remove the center of the HMD offsets, and the screen space + //-------------------- + FLOAT xbar[3] = {0.0, 0.0, 0.0}; + FLOAT sbar[2] = {0.0, 0.0}; + FLOAT S[2][MAX_POINTS]; + FLOAT X[3][MAX_POINTS]; + FLOAT inv_nPoints = 1.0 / nPoints; + for (i=0; i<nPoints; i++) { + xbar[0] += X_in[0][i]; + xbar[1] += X_in[1][i]; + xbar[2] += X_in[2][i]; + sbar[0] += S_in[0][i]; + sbar[1] += S_in[1][i]; + } + for (j=0; j<3; j++) { xbar[j] *= inv_nPoints; } + for (j=0; j<2; j++) { sbar[j] *= inv_nPoints; } + for (i=0; i<nPoints; i++) { + X[0][i] = X_in[0][i] - xbar[0]; + X[1][i] = X_in[1][i] - xbar[1]; + X[2][i] = X_in[2][i] - xbar[2]; + S[0][i] = S_in[0][i] - sbar[0]; + S[1][i] = S_in[1][i] - sbar[1]; + } + + //-------------------- + // Solve for the morph matrix + // S = M X + // thus + // (SX^t)(XX^t)^-1 = M + //-------------------- + FLOAT Xt[MAX_POINTS][3]; + FLOAT XXt[3][3]; + FLOAT invXXt[3][3]; + FLOAT SXt[2][3]; + FLOAT M[2][3]; // Morph matrix! (2 by 3) + TRANSP(X,Xt,3,nPoints); + MUL(X,Xt,XXt,3,nPoints,3); + MUL(S,Xt,SXt,2,nPoints,3); + INV(XXt,invXXt,3); + MUL(SXt,invXXt,M,2,3,3); +//PRINT(M,2,3); + +// Double checking work +FLOAT S_morph[2][MAX_POINTS]; +MUL(M,X,S_morph,2,3,nPoints); +for (i=0; i<nPoints; i++) { S_morph[0][i]+=sbar[0]; S_morph[1][i]+=sbar[1]; } + + //-------------------- + // Solve for the non-trivial vector + // uf -- vector that goes into the camera + //-------------------- + FLOAT uM[3][3] = { + { M[0][0], M[0][1], M[0][2] }, + { M[1][0], M[1][1], M[1][2] }, + { 3.14567, -1.2345, 4.32567 } }; // Morph matrix with appended row +//PRINT(uM,3,3); +// ToDo: Pick a number for the bottom that is NOT linearly separable with M[0] and M[1] + FLOAT B[3][1] = { {0.0}, {0.0}, {1.0} }; + FLOAT inv_uM[3][3]; + FLOAT uf[3][1]; + INV(uM,inv_uM,3); + MUL(inv_uM,B,uf,3,3,1); + + //-------------------- + // Solve for unit length vector + // f that goes into the camera + //-------------------- + FLOAT uf_len = sqrt( uf[0][0]*uf[0][0] + uf[1][0]*uf[1][0] + uf[2][0]*uf[2][0] ); + FLOAT f[3][1] = { {uf[0][0]/uf_len}, {uf[1][0]/uf_len}, {uf[2][0]/uf_len} }; + printf( "FFF: {%f %f %f}: %f\n", f[0][0], f[1][0], f[2][0], uf_len ); +//PRINT(uf,3,1); +//PRINT(f,3,1); + +//FLOAT check[3][1]; +//MUL(uM,uf,check,3,3,1); +//PRINT(check,3,1); + + //-------------------- + // take cross products to get vectors u,r + //-------------------- + FLOAT u[3][1], r[3][1]; + CrossProduct(u[0][0],u[1][0],u[2][0],f[0][0],f[1][0],f[2][0],1.0,0.0,0.0); + FLOAT inv_ulen = 1.0 / sqrt( u[0][0]*u[0][0] + u[1][0]*u[1][0] + u[2][0]*u[2][0] ); + u[0][0]*=inv_ulen; u[1][0]*=inv_ulen; u[2][0]*=inv_ulen; + CrossProduct(r[0][0],r[1][0],r[2][0],f[0][0],f[1][0],f[2][0],u[0][0],u[1][0],u[2][0]); +//PRINT(u,3,1); +//PRINT(r,3,1); + + //-------------------- + // Use morph matrix to get screen space + // uhat,rhat + //-------------------- + FLOAT uhat[2][1], rhat[2][1], fhat[2][1]; + MUL(M,f,fhat,2,3,1); + MUL(M,u,uhat,2,3,1); + MUL(M,r,rhat,2,3,1); + FLOAT fhat_len = sqrt( fhat[0][0]*fhat[0][0] + fhat[1][0]*fhat[1][0] ); + FLOAT uhat_len = sqrt( uhat[0][0]*uhat[0][0] + uhat[1][0]*uhat[1][0] ); + FLOAT rhat_len = sqrt( rhat[0][0]*rhat[0][0] + rhat[1][0]*rhat[1][0] ); + FLOAT urhat_len = 0.5 * (uhat_len + rhat_len); +/* +printf("fhat %f %f (len %f)\n", fhat[0][0], fhat[1][0], fhat_len); +printf("uhat %f %f (len %f)\n", uhat[0][0], uhat[1][0], uhat_len); +printf("rhat %f %f (len %f)\n", rhat[0][0], rhat[1][0], rhat_len); +*/ + FLOAT ydist1 = 1.0 / uhat_len; //0.25*PI / uhat_len; + FLOAT ydist2 = 1.0 / rhat_len; //0.25*PI / rhat_len; + FLOAT ydist = 1.0 / urhat_len; + printf("ydist1 %f ydist2 %f ydist %f FH: %f\n", ydist1, ydist2, ydist, fhat_len); + + //-------------------- + // Rescale the axies to be of the proper length + //-------------------- + FLOAT x[3][1] = { {M[0][0]*ydist}, {0.0}, {M[1][0]*ydist} }; + FLOAT y[3][1] = { {M[0][1]*ydist}, {0.0}, {M[1][1]*ydist} }; + FLOAT z[3][1] = { {M[0][2]*ydist}, {0.0}, {M[1][2]*ydist} }; +printf( "YDIST: %f\n", ydist ); +printf( "{%f %f, %f %f, %f %f}\n", x[0][0], x[2][0], y[0][0], y[2][0], z[0][0], z[2][0] ); +printf( "{%f, %f, %f}\n", x[0][0]*x[0][0]+x[2][0]*x[2][0], y[0][0]*y[0][0]+y[2][0]*y[2][0], z[0][0]*z[0][0]+z[2][0]*z[2][0] ); + // we know the distance into (or out of) the camera for the z axis, + // but we don't know which direction . . . + FLOAT x_y = sqrt(1.0 - x[0][0]*x[0][0] - x[2][0]*x[2][0]); + FLOAT y_y = sqrt(1.0 - y[0][0]*y[0][0] - y[2][0]*y[2][0]); + FLOAT z_y = sqrt(1.0 - z[0][0]*z[0][0] - z[2][0]*z[2][0]); +printf( "{%f %f %f}\n", x_y, y_y, z_y ); + // Exhaustively flip the minus sign of the z axis until we find the right one . . . + FLOAT bestErr = 9999.0; + FLOAT xy_dot2 = x[0][0]*y[0][0] + x[2][0]*y[2][0]; + FLOAT yz_dot2 = y[0][0]*z[0][0] + y[2][0]*z[2][0]; + FLOAT zx_dot2 = z[0][0]*x[0][0] + z[2][0]*x[2][0]; + for (i=0;i<2;i++) { + for (j=0;j<2;j++) { + for(k=0;k<2;k++) { + + // Calculate the error term + FLOAT xy_dot = xy_dot2 + x_y*y_y; + FLOAT yz_dot = yz_dot2 + y_y*z_y; + FLOAT zx_dot = zx_dot2 + z_y*x_y; + FLOAT err = _ABS(xy_dot) + _ABS(yz_dot) + _ABS(zx_dot); + + // Calculate the handedness + FLOAT cx,cy,cz; + CrossProduct(cx,cy,cz,x[0][0],x_y,x[2][0],y[0][0],y_y,y[2][0]); + FLOAT hand = cx*z[0][0] + cy*y_y + cz*z[2][0]; + printf("err %f hand %f\n", err, hand); + + // If we are the best right-handed frame so far + if (err < bestErr) { x[1][0]=x_y; y[1][0]=y_y; z[1][0]=z_y; bestErr=err; } + //if (i == 1 && j == 1 && k == 1) { x[1][0]=x_y; y[1][0]=y_y; z[1][0]=z_y; bestErr=err; } + z_y = -z_y; + } + y_y = -y_y; + } + x_y = -x_y; + } + printf("bestErr %f\n", bestErr); +/* + for (i=0; i<nPoints; i++) { + float x1 = x[0][0]*X[0][i] + y[0][0]*X[1][i] + z[0][0]*X[2][i]; + float y1 = x[1][0]*X[0][i] + y[1][0]*X[1][i] + z[1][0]*X[2][i]; + float z1 = x[2][0]*X[0][i] + y[2][0]*X[1][i] + z[2][0]*X[2][i]; + printf("x1z1 %f %f y1 %f\n", x1, z1, y1); + } +*/ +/* + //-------------------- + // Combine uhat and rhat to figure out the unit x-vector + //-------------------- + FLOAT xhat[2][1] = { {0.0}, {1.0} }; + FLOAT urhat[2][2] = { + {uhat[0][0], uhat[1][0]}, + {rhat[0][0], rhat[1][0]} }; + FLOAT inv_urhat[2][2]; + FLOAT ab[2][1]; + INV(urhat,inv_urhat,2); + MUL(inv_urhat,xhat,ab,2,2,1); +PRINT(ab,2,1); + FLOAT a = ab[0][0], b = ab[1][0]; + + //------------------- + // calculate the xyz coordinate system + //------------------- + FLOAT y[3][1] = { {f[0][0]}, {f[1][0]}, {f[2][0]} }; + FLOAT x[3][1] = { {a*u[0][0] + b*r[0][0]}, {a*u[1][0] + b*r[1][0]}, {a*u[2][0] + b*r[2][0]} }; + FLOAT inv_xlen = 1.0 / sqrt( x[0][0]*x[0][0] + x[1][0]*x[1][0] + x[2][0]*x[2][0] ); + x[0][0]*=inv_xlen; x[1][0]*=inv_xlen; x[2][0]*=inv_xlen; + FLOAT z[3][1]; + CrossProduct(z[0][0],z[1][0],z[2][0],x[0][0],x[1][0],x[2][0],y[0][0],y[1][0],y[2][0]); +*/ + // Store into the rotation matrix + for (i=0; i<3; i++) { R[i][0] = x[i][0]; R[i][1] = y[i][0]; R[i][2] = z[i][0]; } +//PRINT(R,3,3); + + //------------------- + // Calculate the translation of the centroid + //------------------- + trans[0]=tan(sbar[0]); trans[1]=1.0; trans[2]=tan(sbar[1]); + FLOAT inv_translen = ydist / sqrt( trans[0]*trans[0] + trans[1]*trans[1] + trans[2]*trans[2] ); + trans[0]*=inv_translen; trans[1]*=inv_translen; trans[2]*=inv_translen; + + //------------------- + // Add in the centroid point + //------------------- + trans[0] -= xbar[0]*R[0][0] + xbar[1]*R[0][1] + xbar[2]*R[0][2]; + trans[1] -= xbar[0]*R[1][0] + xbar[1]*R[1][1] + xbar[2]*R[1][2]; + trans[2] -= xbar[0]*R[2][0] + xbar[1]*R[2][1] + xbar[2]*R[2][2]; + FLOAT transdist = sqrt( trans[0]*trans[0] + trans[1]*trans[1] + trans[2]*trans[2] ); + + //------------------- + // Pack into the 4x4 transformation matrix + //------------------- + T[0][0]=R[0][0]; T[0][1]=R[0][1]; T[0][2]=R[0][2]; T[0][3]=trans[0]; + T[1][0]=R[1][0]; T[1][1]=R[1][1]; T[1][2]=R[1][2]; T[1][3]=trans[1]; + T[2][0]=R[2][0]; T[2][1]=R[2][1]; T[2][2]=R[2][2]; T[2][3]=trans[2]; + T[3][0]=0.0; T[3][1]=0.0; T[3][2]=0.0; T[3][3]=1.0; + + //------------------- + // Plot the output points + //------------------- + for (i=0; i<nPoints; i++) { + float Tx = T[0][0]*X_in[0][i] + T[0][1]*X_in[1][i] + T[0][2]*X_in[2][i] + T[0][3]; + float Ty = T[1][0]*X_in[0][i] + T[1][1]*X_in[1][i] + T[1][2]*X_in[2][i] + T[1][3]; + float Tz = T[2][0]*X_in[0][i] + T[2][1]*X_in[1][i] + T[2][2]*X_in[2][i] + T[2][3]; + S_out[0][i] = atan2(Tx, Ty); // horiz + S_out[1][i] = atan2(Tz, Ty); // vert + //S_out[0][i] = Tx; + //S_out[1][i] = Tz; + printf("point %i Txyz %f %f %f in %f %f out %f %f morph %f %f\n", i, Tx,Ty,Tz, S_in[0][i], S_in[1][i], S_out[0][i], S_out[1][i], S_morph[0][i], S_morph[1][i]); + } + +// printf("xbar %f %f %f\n", xbar[0], xbar[1], xbar[2]); +// printf("trans %f %f %f dist: %f\n", trans[0], trans[1], trans[2], transdist); +} + +void AffineSolve( + float T[4][4], // OUTPUT: transform + float O[MAX_POINTS][4], // INPUT: points, offsets + float N[MAX_POINTS][3], // INPUT: plane normals + float D[MAX_POINTS], // INPUT: plane offsets + int nPoints, int nIter, + float stepSizeRot, float stepSizePos, float falloff, int constrain) +{ + int i,j,k,iter; + //T[3][3] = 1.0f; + + printf("iter x y z error\n"); + + float gradDot = 1.0; + float prevGradDot = 1.0; + float de_dT[3][4]; // the gradient + float conj[3][4]; // the conjugate + float errorSq=0.0; + for (iter=0; iter<nIter; iter++) + { + //---------------------------------- + // Calculate the gradient direction + //---------------------------------- + errorSq = 0.0; + memset(de_dT, 0, 3*4*sizeof(float)); + for (i=0; i<nPoints; i++) + { + // What is the plane deviation error + float Ei = -D[i]; + for (j=0; j<3; j++) { + float Tj_oi = 0.0f; + for (k=0; k<4; k++) { + Tj_oi += T[j][k] * O[i][k]; + } + Ei += N[i][j] * Tj_oi; + } +// printf("E[%d] %f\n", i, Ei); + + // Figure out contribution to the error + for (j=0; j<3; j++) { + for (k=0; k<4; k++) { + de_dT[j][k] += N[i][j] * O[i][k] * Ei; + } + } + + errorSq += Ei*Ei; + } + +// printf("%d %f %f %f %f\n", iter, T[0][3], T[1][3], T[2][3], sqrt(errorSq)); +//exit(1); + // Constrain the gradient (such that dot products are zero) + if (constrain) + { + float T0T1 = 0.0, T1T2 = 0.0, T2T0 = 0.0; + for (k=0; k<3; k++) { + T0T1 += T[0][k] * T[1][k]; + T1T2 += T[1][k] * T[2][k]; + T2T0 += T[2][k] * T[0][k]; + } +// printf("T0T1 %f T1T2 %f T2T0 %f\n", T0T1, T1T2, T2T0); + for (k=0; k<3; k++) { + de_dT[0][k] += ORTHOG_PENALTY * 2.0 * T0T1 * T[1][k]; + de_dT[0][k] += ORTHOG_PENALTY * 2.0 * T2T0 * T[2][k]; + de_dT[1][k] += ORTHOG_PENALTY * 2.0 * T1T2 * T[2][k]; + de_dT[1][k] += ORTHOG_PENALTY * 2.0 * T0T1 * T[0][k]; + de_dT[2][k] += ORTHOG_PENALTY * 2.0 * T1T2 * T[1][k]; + de_dT[2][k] += ORTHOG_PENALTY * 2.0 * T2T0 * T[0][k]; + } + } + + // Calculate the gradient dot product + // (used by conjugate gradient method) + prevGradDot = gradDot; + gradDot = 0.0; + for (j=0; j<3; j++) { + for (k=0; k<4; k++) { + gradDot += de_dT[j][k] * de_dT[j][k]; + } + } + +// printf("Iter %d error %f gradDot %f prevGradDot %f\n", iter, sqrt(errorSq), gradDot, prevGradDot); + + //---------------------------------- + // Calculate the conjugate direction + //---------------------------------- +// if (iter==0) { + // First iteration, just use the gradient + for (j=0; j<3; j++) { + for (k=0; k<4; k++) { + conj[j][k] = -de_dT[j][k]; + } + } +/* } else { + // Calculate "beta" for Fletcher Reeves method + float beta = gradDot / prevGradDot; +//printf("gradDot %f prevGradDot %f beta %f\n", gradDot, prevGradDot, beta); + + // Update the conjugate + for (j=0; j<3; j++) { + for (k=0; k<4; k++) { + conj[j][k] = beta*conj[j][k] - de_dT[j][k]; + } + } + } +*/ + +// PRINT_MAT(de_dT,4,4); +// exit(1); + + //---------------------------------- + // How large is the gradient ? + //---------------------------------- + + double gradSizeRot = 0.0; + double gradSizePos = 0.0; + for (j=0; j<3; j++) { + for (k=0; k<3; k++) { + gradSizeRot += _ABS(conj[j][k]); + } + gradSizePos += _ABS(conj[j][k]); + } + if (gradSizeRot <= TOO_SMALL && gradSizePos <= TOO_SMALL) { break; } // Quit, we've totally converged + + //---------------------------------- + // Descend in the gradient direction + //---------------------------------- + if (gradSizeRot > TOO_SMALL) { + float scaleRot = stepSizeRot / gradSizeRot; + for (j=0; j<3; j++) { + for (k=0; k<3; k++) { + T[j][k] += scaleRot * conj[j][k]; + } + } + stepSizeRot *= falloff; + } + + if (gradSizePos > TOO_SMALL) { + float scalePos = stepSizePos / gradSizePos; + for (j=0; j<3; j++) { + T[j][3] += scalePos * conj[j][3]; + } + stepSizePos *= falloff; + } + + // Constrain the gradient (such that scaling is one) + if (constrain) + { + // Measure the scales + float len[3] = {0.0, 0.0, 0.0}; + for (j=0; j<3; j++) { + double lenSq = 0.0; + for (k=0; k<3; k++) { lenSq += (double)T[j][k] * (double)T[j][k]; } + len[j] = sqrt(lenSq); + } + + // How far off is the scale? + float xzLen = 0.5 * (len[0] + len[2]); + if (xzLen > TOO_SMALL) { + float inv_xzLen = 1.0 / xzLen; + for (j=0; j<3; j++) { + T[3][j] *= inv_xzLen; + } + } + + // Rescale the thing + for (j=0; j<3; j++) + { + if (len[j] > TOO_SMALL) { + float inv_len = 1.0 / len[j]; + for (k=0; k<3; k++) { T[j][k] *= inv_len; } + } + } + } + } + float dist = sqrt(T[0][3]*T[0][3] + T[1][3]*T[1][3] + T[2][3]*T[2][3]); + printf("AffineSolve: pos: %f %f %f dist: %f\n", T[0][3], T[1][3], T[2][3], dist); +} + +int main() +{ + int i,j,k,sen,axis; + + // Read the data files + printf( "...\n" ); + ReadHmdPoints(); + ReadPtinfo(); + + //------------------------- + // Package the lighthouse data for "AffineSolve" + //------------------------- + + // Data for the "iterative" affine solve formula + // float Tcalc[4][4]; + float O[MAX_POINTS][4]; + float N[MAX_POINTS][3]; + float D[MAX_POINTS]; + int nPlanes = 0; + + for (sen=0; sen<NUM_HMD; sen++) + { + for (axis=0; axis<2; axis++) + { + if (hmd_angle[sen][axis] != -9999.0) + { + // Set the offset + O[nPlanes][0] = hmd_pos[sen][0]; + O[nPlanes][1] = hmd_pos[sen][1]; + O[nPlanes][2] = hmd_pos[sen][2]; + O[nPlanes][3] = 1.0; + + // Calculate the plane equation + if (axis == 0) { // Horizontal + N[nPlanes][0] = -cos(hmd_angle[sen][axis]); + N[nPlanes][1] = -sin(hmd_angle[sen][axis]); + N[nPlanes][2] = 0.0; + D[nPlanes] = 0.0; + } else { // Vertical + N[nPlanes][0] = 0.0; + N[nPlanes][1] = -sin(hmd_angle[sen][axis]); + N[nPlanes][2] = cos(hmd_angle[sen][axis]); + D[nPlanes] = 0.0; + } + + printf("plane %d O %.3f %.3f %.3f %.3f N %.3f %.3f %.3f D %.3f\n", + nPlanes, + O[nPlanes][0], O[nPlanes][1], O[nPlanes][2], O[nPlanes][3], + N[nPlanes][0], N[nPlanes][1], N[nPlanes][2], + D[nPlanes]); + nPlanes++; + } + } + } + + + printf("nPlanes %d\n", nPlanes); + + //} + + //PRINT_MAT(Tcalc,4,4); + + + //-------------------------------------------------- + // Package the data for "OrthoSolve" + //-------------------------------------------------- + + // Data for the "fake" ortho solve formula + float Tortho[4][4]; // OUTPUT: 4x4 transformation matrix + FLOAT S_out[2][MAX_POINTS]; // INPUT: array of screenspace points + FLOAT S_in[2][MAX_POINTS]; // INPUT: array of screenspace points + FLOAT X_in[3][MAX_POINTS]; // INPUT: array of offsets + int nPoints=0; + + // Transform into the "OrthoSolve" format + for (sen=0; sen<NUM_HMD; sen++) + { + if (hmd_angle[sen][0] != -9999.0 && hmd_angle[sen][1] != -9999.0) + { + S_in[0][nPoints] = hmd_angle[sen][0]; + S_in[1][nPoints] = hmd_angle[sen][1]; + X_in[0][nPoints] = hmd_pos[sen][0]; + X_in[1][nPoints] = hmd_pos[sen][1]; + X_in[2][nPoints] = hmd_pos[sen][2]; + nPoints++; + } + } + printf("OrthoSolve nPoints %d\n", nPoints); + + //-------------------------------------------------- + // Run the "OrthoSolve" and then the "AffineSolve" + //-------------------------------------------------- + + int loop; + // for (loop=0; loop<1000000; loop++) + { + // Run OrthoSolve + OrthoSolve( + Tortho, // OUTPUT: 4x4 transformation matrix + S_out, // OUTPUT: array of output screenspace points + S_in, // INPUT: array of screenspace points + X_in, // INPUT: array of offsets + nPoints); + } + + // Run the calculation for Tcalc + //int run; + //for (run=0; run<100; run++) { +/* + // Initialize Tcalc to the identity matrix + memcpy(Tcalc, Tortho, 4*4*sizeof(float)); + //memset(Tcalc, 0, 4*4*sizeof(float)); + //for (i=0; i<4; i++) { Tcalc[i][i] = 1.0f; } + + // Solve it! + AffineSolve( + Tcalc, // OUTPUT: transform + O, // INPUT: points, offsets + N, // INPUT: plane normals + D, // INPUT: plane offsets + nPlanes, NITER, + STEP_SIZE_ROT, STEP_SIZE_POS, FALLOFF, + 1); +*/ + // insert code here... + return 0; +} diff --git a/dave/HMD_normals.csv b/dave/HMD_normals.csv new file mode 100644 index 0000000..9abb886 --- /dev/null +++ b/dave/HMD_normals.csv @@ -0,0 +1,32 @@ +0.656529 0.080037 0.750042 +1.000000 0.000000 0.000000 +0.951033 0.192296 -0.241987 +0.863341 0.261141 -0.431796 +0.562083 0.827080 -0.000702 +0.556742 0.818617 -0.141085 +0.127514 0.360969 0.923819 +0.197328 0.721208 0.664019 +0.197328 -0.720504 0.664783 +0.460200 0.003066 0.887810 +0.025263 -0.748333 0.662842 +0.556742 -0.818766 -0.140217 +0.562083 -0.827081 0.000175 +0.863341 -0.261598 -0.431519 +0.951034 -0.192552 -0.241783 +0.656529 -0.079242 0.750127 +-0.197328 0.721208 0.664019 +-0.127514 0.360969 0.923819 +-0.556742 0.818617 -0.141085 +-0.562083 0.827080 -0.000702 +-0.863341 0.261141 -0.431796 +-0.951033 0.192296 -0.241987 +-1.000000 0.000000 0.000000 +-0.656529 0.080037 0.750042 +-0.656529 -0.079242 0.750127 +-0.951034 -0.192552 -0.241783 +-0.863341 -0.261598 -0.431519 +-0.562083 -0.827081 0.000175 +-0.556742 -0.818766 -0.140217 +-0.025263 -0.748333 0.662842 +-0.460200 0.003066 0.887810 +-0.197328 -0.720504 0.664783 diff --git a/dave/HMD_points.csv b/dave/HMD_points.csv new file mode 100644 index 0000000..9c8f61d --- /dev/null +++ b/dave/HMD_points.csv @@ -0,0 +1,32 @@ +0.085242 0.017104 0.046493 +0.093076 -0.000052 0.035027 +0.086979 0.016748 0.020598 +0.089932 0.029368 0.029518 +0.080100 0.045401 0.034918 +0.050949 0.052772 0.033339 +0.024403 0.019970 0.059476 +0.047578 0.033637 0.053722 +0.047777 -0.034022 0.053513 +0.057882 -0.000007 0.056592 +0.027400 -0.051728 0.046844 +0.051043 -0.052940 0.032966 +0.080512 -0.045486 0.034783 +0.090041 -0.029387 0.029598 +0.086948 -0.016462 0.020596 +0.085268 -0.017169 0.046332 +-0.047738 0.033671 0.053643 +-0.024283 0.020141 0.059533 +-0.050979 0.052769 0.033118 +-0.080175 0.045313 0.034850 +-0.090020 0.029306 0.029481 +-0.087090 0.016787 0.020453 +-0.093113 0.000154 0.034906 +-0.085269 0.017293 0.046345 +-0.085128 -0.017079 0.046558 +-0.086970 -0.016675 0.020667 +-0.089911 -0.029458 0.029795 +-0.080444 -0.045268 0.034661 +-0.051102 -0.052996 0.033321 +-0.027283 -0.051820 0.046794 +-0.057974 -0.000051 0.056586 +-0.047652 -0.033921 0.053604 diff --git a/dave/Makefile b/dave/Makefile index ed916f4..bf62837 100644 --- a/dave/Makefile +++ b/dave/Makefile @@ -1,5 +1,7 @@ all: # gcc -O3 -o kalman_filter kalman_filter.c main.c - gcc -O3 -o dclapack_test dclapack_test.c + gcc -O3 -o dclapack_test dclapack_test.c -lm + gcc -O0 -g -o AffineSolve AffineSolve.c -lm -I../redist ../redist/linmath.c #-Wall + clean: rm -f kalman_filter dclapack_test diff --git a/dave/dclapack_test b/dave/dclapack_test Binary files differindex 7789e78..bac05e7 100755 --- a/dave/dclapack_test +++ b/dave/dclapack_test diff --git a/dave/errors.txt b/dave/errors.txt new file mode 100644 index 0000000..df2a094 --- /dev/null +++ b/dave/errors.txt @@ -0,0 +1,2141 @@ +AffineSolve.c: In function ‘quattomatrix33’: +AffineSolve.c:33:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +AffineSolve.c:50:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +AffineSolve.c:100:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +AffineSolve.c:362:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +AffineSolve.c:534:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +In file included from AffineSolve.c:12:0: +../redist/linmath.h:106:6: error: old-style parameter declarations in prototyped function definition + void quattomatrix33(FLT * matrix33, const FLT * qin) + ^ +AffineSolve.c:658:1: error: expected ‘{’ at end of input + } + ^ +In file included from /usr/include/math.h:48:0, + from ../redist/linmath.c:4: +/usr/include/x86_64-linux-gnu/bits/mathdef.h: In function ‘quattomatrix33’: +/usr/include/x86_64-linux-gnu/bits/mathdef.h:28:15: error: storage class specified for parameter ‘float_t’ + typedef float float_t; /* `float' expressions are evaluated as `float'. */ + ^ +/usr/include/x86_64-linux-gnu/bits/mathdef.h:29:16: error: storage class specified for parameter ‘double_t’ + typedef double double_t; /* `double' expressions are evaluated + ^ +In file included from /usr/include/features.h:367:0, + from /usr/include/math.h:26, + from ../redist/linmath.c:4: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:54:1: error: storage class specified for parameter ‘acos’ + __MATHCALL (acos,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:54:1: error: storage class specified for parameter ‘__acos’ + __MATHCALL (acos,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:56:1: error: storage class specified for parameter ‘asin’ + __MATHCALL (asin,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:56:1: error: storage class specified for parameter ‘__asin’ + __MATHCALL (asin,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:58:1: error: storage class specified for parameter ‘atan’ + __MATHCALL (atan,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:58:1: error: storage class specified for parameter ‘__atan’ + __MATHCALL (atan,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:60:1: error: storage class specified for parameter ‘atan2’ + __MATHCALL (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:60:1: error: storage class specified for parameter ‘__atan2’ + __MATHCALL (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:63:1: error: storage class specified for parameter ‘cos’ + __MATHCALL_VEC (cos,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:63:1: error: storage class specified for parameter ‘__cos’ + __MATHCALL_VEC (cos,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:65:1: error: storage class specified for parameter ‘sin’ + __MATHCALL_VEC (sin,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:65:1: error: storage class specified for parameter ‘__sin’ + __MATHCALL_VEC (sin,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:67:1: error: storage class specified for parameter ‘tan’ + __MATHCALL (tan,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:67:1: error: storage class specified for parameter ‘__tan’ + __MATHCALL (tan,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:72:1: error: storage class specified for parameter ‘cosh’ + __MATHCALL (cosh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:72:1: error: storage class specified for parameter ‘__cosh’ + __MATHCALL (cosh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:74:1: error: storage class specified for parameter ‘sinh’ + __MATHCALL (sinh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:74:1: error: storage class specified for parameter ‘__sinh’ + __MATHCALL (sinh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:76:1: error: storage class specified for parameter ‘tanh’ + __MATHCALL (tanh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:76:1: error: storage class specified for parameter ‘__tanh’ + __MATHCALL (tanh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:88:1: error: storage class specified for parameter ‘acosh’ + __MATHCALL (acosh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:88:1: error: storage class specified for parameter ‘__acosh’ + __MATHCALL (acosh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:90:1: error: storage class specified for parameter ‘asinh’ + __MATHCALL (asinh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:90:1: error: storage class specified for parameter ‘__asinh’ + __MATHCALL (asinh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:92:1: error: storage class specified for parameter ‘atanh’ + __MATHCALL (atanh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:92:1: error: storage class specified for parameter ‘__atanh’ + __MATHCALL (atanh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:100:1: error: storage class specified for parameter ‘exp’ + __MATHCALL_VEC (exp,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:100:1: error: storage class specified for parameter ‘__exp’ + __MATHCALL_VEC (exp,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:103:1: error: storage class specified for parameter ‘frexp’ + __MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:103:1: error: storage class specified for parameter ‘__frexp’ + __MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:106:1: error: storage class specified for parameter ‘ldexp’ + __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:106:1: error: storage class specified for parameter ‘__ldexp’ + __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:109:1: error: storage class specified for parameter ‘log’ + __MATHCALL_VEC (log,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:109:1: error: storage class specified for parameter ‘__log’ + __MATHCALL_VEC (log,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:112:1: error: storage class specified for parameter ‘log10’ + __MATHCALL (log10,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:112:1: error: storage class specified for parameter ‘__log10’ + __MATHCALL (log10,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:115:1: error: storage class specified for parameter ‘modf’ + __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:115:1: error: storage class specified for parameter ‘__modf’ + __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:128:1: error: storage class specified for parameter ‘expm1’ + __MATHCALL (expm1,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:128:1: error: storage class specified for parameter ‘__expm1’ + __MATHCALL (expm1,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:131:1: error: storage class specified for parameter ‘log1p’ + __MATHCALL (log1p,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:131:1: error: storage class specified for parameter ‘__log1p’ + __MATHCALL (log1p,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:134:1: error: storage class specified for parameter ‘logb’ + __MATHCALL (logb,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:134:1: error: storage class specified for parameter ‘__logb’ + __MATHCALL (logb,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:141:1: error: storage class specified for parameter ‘exp2’ + __MATHCALL (exp2,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:141:1: error: storage class specified for parameter ‘__exp2’ + __MATHCALL (exp2,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:144:1: error: storage class specified for parameter ‘log2’ + __MATHCALL (log2,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:144:1: error: storage class specified for parameter ‘__log2’ + __MATHCALL (log2,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:153:1: error: storage class specified for parameter ‘pow’ + __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:153:1: error: storage class specified for parameter ‘__pow’ + __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:156:1: error: storage class specified for parameter ‘sqrt’ + __MATHCALL (sqrt,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:156:1: error: storage class specified for parameter ‘__sqrt’ + __MATHCALL (sqrt,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:162:1: error: storage class specified for parameter ‘hypot’ + __MATHCALL (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:162:1: error: storage class specified for parameter ‘__hypot’ + __MATHCALL (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:169:1: error: storage class specified for parameter ‘cbrt’ + __MATHCALL (cbrt,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:169:1: error: storage class specified for parameter ‘__cbrt’ + __MATHCALL (cbrt,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:178:1: error: storage class specified for parameter ‘ceil’ + __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:178:1: error: storage class specified for parameter ‘__ceil’ + __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:181:1: error: storage class specified for parameter ‘fabs’ + __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:181:1: error: storage class specified for parameter ‘__fabs’ + __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:184:1: error: storage class specified for parameter ‘floor’ + __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:184:1: error: storage class specified for parameter ‘__floor’ + __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:187:1: error: storage class specified for parameter ‘fmod’ + __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:187:1: error: storage class specified for parameter ‘__fmod’ + __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:192:1: error: storage class specified for parameter ‘__isinf’ + __MATHDECL_1 (int,__isinf,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:195:1: error: storage class specified for parameter ‘__finite’ + __MATHDECL_1 (int,__finite,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:204:1: error: storage class specified for parameter ‘isinf’ + __MATHDECL_1 (int,isinf,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:208:1: error: storage class specified for parameter ‘finite’ + __MATHDECL_1 (int,finite,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:211:1: error: storage class specified for parameter ‘drem’ + __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:211:1: error: storage class specified for parameter ‘__drem’ + __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:215:1: error: storage class specified for parameter ‘significand’ + __MATHCALL (significand,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:215:1: error: storage class specified for parameter ‘__significand’ + __MATHCALL (significand,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:221:1: error: storage class specified for parameter ‘copysign’ + __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:221:1: error: storage class specified for parameter ‘__copysign’ + __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:228:1: error: storage class specified for parameter ‘nan’ + __MATHCALLX (nan,, (const char *__tagb), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:228:1: error: storage class specified for parameter ‘__nan’ + __MATHCALLX (nan,, (const char *__tagb), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:234:1: error: storage class specified for parameter ‘__isnan’ + __MATHDECL_1 (int,__isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:241:1: error: storage class specified for parameter ‘isnan’ + __MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:247:1: error: storage class specified for parameter ‘j0’ + __MATHCALL (j0,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:247:1: error: storage class specified for parameter ‘__j0’ + __MATHCALL (j0,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:248:1: error: storage class specified for parameter ‘j1’ + __MATHCALL (j1,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:248:1: error: storage class specified for parameter ‘__j1’ + __MATHCALL (j1,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:249:1: error: storage class specified for parameter ‘jn’ + __MATHCALL (jn,, (int, _Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:249:1: error: storage class specified for parameter ‘__jn’ + __MATHCALL (jn,, (int, _Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:250:1: error: storage class specified for parameter ‘y0’ + __MATHCALL (y0,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:250:1: error: storage class specified for parameter ‘__y0’ + __MATHCALL (y0,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:251:1: error: storage class specified for parameter ‘y1’ + __MATHCALL (y1,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:251:1: error: storage class specified for parameter ‘__y1’ + __MATHCALL (y1,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:252:1: error: storage class specified for parameter ‘yn’ + __MATHCALL (yn,, (int, _Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:252:1: error: storage class specified for parameter ‘__yn’ + __MATHCALL (yn,, (int, _Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:259:1: error: storage class specified for parameter ‘erf’ + __MATHCALL (erf,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:259:1: error: storage class specified for parameter ‘__erf’ + __MATHCALL (erf,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:260:1: error: storage class specified for parameter ‘erfc’ + __MATHCALL (erfc,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:260:1: error: storage class specified for parameter ‘__erfc’ + __MATHCALL (erfc,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:261:1: error: storage class specified for parameter ‘lgamma’ + __MATHCALL (lgamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:261:1: error: storage class specified for parameter ‘__lgamma’ + __MATHCALL (lgamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:268:1: error: storage class specified for parameter ‘tgamma’ + __MATHCALL (tgamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:268:1: error: storage class specified for parameter ‘__tgamma’ + __MATHCALL (tgamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:274:1: error: storage class specified for parameter ‘gamma’ + __MATHCALL (gamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:274:1: error: storage class specified for parameter ‘__gamma’ + __MATHCALL (gamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:281:1: error: storage class specified for parameter ‘lgamma_r’ + __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:281:1: error: storage class specified for parameter ‘__lgamma_r’ + __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:289:1: error: storage class specified for parameter ‘rint’ + __MATHCALL (rint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:289:1: error: storage class specified for parameter ‘__rint’ + __MATHCALL (rint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:292:1: error: storage class specified for parameter ‘nextafter’ + __MATHCALLX (nextafter,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:292:1: error: storage class specified for parameter ‘__nextafter’ + __MATHCALLX (nextafter,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:294:1: error: storage class specified for parameter ‘nexttoward’ + __MATHCALLX (nexttoward,, (_Mdouble_ __x, long double __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:294:1: error: storage class specified for parameter ‘__nexttoward’ + __MATHCALLX (nexttoward,, (_Mdouble_ __x, long double __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:298:1: error: storage class specified for parameter ‘remainder’ + __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:298:1: error: storage class specified for parameter ‘__remainder’ + __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:302:1: error: storage class specified for parameter ‘scalbn’ + __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:302:1: error: storage class specified for parameter ‘__scalbn’ + __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:306:1: error: storage class specified for parameter ‘ilogb’ + __MATHDECL (int,ilogb,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:306:1: error: storage class specified for parameter ‘__ilogb’ + __MATHDECL (int,ilogb,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:311:1: error: storage class specified for parameter ‘scalbln’ + __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:311:1: error: storage class specified for parameter ‘__scalbln’ + __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:315:1: error: storage class specified for parameter ‘nearbyint’ + __MATHCALL (nearbyint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:315:1: error: storage class specified for parameter ‘__nearbyint’ + __MATHCALL (nearbyint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:319:1: error: storage class specified for parameter ‘round’ + __MATHCALLX (round,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:319:1: error: storage class specified for parameter ‘__round’ + __MATHCALLX (round,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:323:1: error: storage class specified for parameter ‘trunc’ + __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:323:1: error: storage class specified for parameter ‘__trunc’ + __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:328:1: error: storage class specified for parameter ‘remquo’ + __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:328:1: error: storage class specified for parameter ‘__remquo’ + __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:335:1: error: storage class specified for parameter ‘lrint’ + __MATHDECL (long int,lrint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:335:1: error: storage class specified for parameter ‘__lrint’ + __MATHDECL (long int,lrint,, (_Mdouble_ __x)); + ^ +In file included from /usr/include/math.h:83:0, + from ../redist/linmath.c:4: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:336:1: error: expected declaration specifiers before ‘__extension__’ + __extension__ + ^ +In file included from /usr/include/features.h:367:0, + from /usr/include/math.h:26, + from ../redist/linmath.c:4: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:337:1: error: storage class specified for parameter ‘__llrint’ + __MATHDECL (long long int,llrint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:341:1: error: storage class specified for parameter ‘lround’ + __MATHDECL (long int,lround,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:341:1: error: storage class specified for parameter ‘__lround’ + __MATHDECL (long int,lround,, (_Mdouble_ __x)); + ^ +In file included from /usr/include/math.h:83:0, + from ../redist/linmath.c:4: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:342:1: error: expected declaration specifiers before ‘__extension__’ + __extension__ + ^ +In file included from /usr/include/features.h:367:0, + from /usr/include/math.h:26, + from ../redist/linmath.c:4: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:343:1: error: storage class specified for parameter ‘__llround’ + __MATHDECL (long long int,llround,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:347:1: error: storage class specified for parameter ‘fdim’ + __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:347:1: error: storage class specified for parameter ‘__fdim’ + __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:350:1: error: storage class specified for parameter ‘fmax’ + __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:350:1: error: storage class specified for parameter ‘__fmax’ + __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:353:1: error: storage class specified for parameter ‘fmin’ + __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:353:1: error: storage class specified for parameter ‘__fmin’ + __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:357:1: error: storage class specified for parameter ‘__fpclassify’ + __MATHDECL_1 (int, __fpclassify,, (_Mdouble_ __value)) + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:361:1: error: storage class specified for parameter ‘__signbit’ + __MATHDECL_1 (int, __signbit,, (_Mdouble_ __value)) + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:366:1: error: storage class specified for parameter ‘fma’ + __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:366:1: error: storage class specified for parameter ‘__fma’ + __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:383:1: error: storage class specified for parameter ‘scalb’ + __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:383:1: error: storage class specified for parameter ‘__scalb’ + __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); + ^ +In file included from ../redist/linmath.c:4:0: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:54:1: error: storage class specified for parameter ‘acosf’ + __MATHCALL (acos,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:54:1: error: storage class specified for parameter ‘__acosf’ + __MATHCALL (acos,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:56:1: error: storage class specified for parameter ‘asinf’ + __MATHCALL (asin,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:56:1: error: storage class specified for parameter ‘__asinf’ + __MATHCALL (asin,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:58:1: error: storage class specified for parameter ‘atanf’ + __MATHCALL (atan,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:58:1: error: storage class specified for parameter ‘__atanf’ + __MATHCALL (atan,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:60:1: error: storage class specified for parameter ‘atan2f’ + __MATHCALL (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:60:1: error: storage class specified for parameter ‘__atan2f’ + __MATHCALL (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:63:1: error: storage class specified for parameter ‘cosf’ + __MATHCALL_VEC (cos,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:63:1: error: storage class specified for parameter ‘__cosf’ + __MATHCALL_VEC (cos,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:65:1: error: storage class specified for parameter ‘sinf’ + __MATHCALL_VEC (sin,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:65:1: error: storage class specified for parameter ‘__sinf’ + __MATHCALL_VEC (sin,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:67:1: error: storage class specified for parameter ‘tanf’ + __MATHCALL (tan,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:67:1: error: storage class specified for parameter ‘__tanf’ + __MATHCALL (tan,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:72:1: error: storage class specified for parameter ‘coshf’ + __MATHCALL (cosh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:72:1: error: storage class specified for parameter ‘__coshf’ + __MATHCALL (cosh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:74:1: error: storage class specified for parameter ‘sinhf’ + __MATHCALL (sinh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:74:1: error: storage class specified for parameter ‘__sinhf’ + __MATHCALL (sinh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:76:1: error: storage class specified for parameter ‘tanhf’ + __MATHCALL (tanh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:76:1: error: storage class specified for parameter ‘__tanhf’ + __MATHCALL (tanh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:88:1: error: storage class specified for parameter ‘acoshf’ + __MATHCALL (acosh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:88:1: error: storage class specified for parameter ‘__acoshf’ + __MATHCALL (acosh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:90:1: error: storage class specified for parameter ‘asinhf’ + __MATHCALL (asinh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:90:1: error: storage class specified for parameter ‘__asinhf’ + __MATHCALL (asinh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:92:1: error: storage class specified for parameter ‘atanhf’ + __MATHCALL (atanh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:92:1: error: storage class specified for parameter ‘__atanhf’ + __MATHCALL (atanh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:100:1: error: storage class specified for parameter ‘expf’ + __MATHCALL_VEC (exp,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:100:1: error: storage class specified for parameter ‘__expf’ + __MATHCALL_VEC (exp,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:103:1: error: storage class specified for parameter ‘frexpf’ + __MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:103:1: error: storage class specified for parameter ‘__frexpf’ + __MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:106:1: error: storage class specified for parameter ‘ldexpf’ + __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:106:1: error: storage class specified for parameter ‘__ldexpf’ + __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:109:1: error: storage class specified for parameter ‘logf’ + __MATHCALL_VEC (log,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:109:1: error: storage class specified for parameter ‘__logf’ + __MATHCALL_VEC (log,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:112:1: error: storage class specified for parameter ‘log10f’ + __MATHCALL (log10,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:112:1: error: storage class specified for parameter ‘__log10f’ + __MATHCALL (log10,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:115:1: error: storage class specified for parameter ‘modff’ + __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:115:1: error: storage class specified for parameter ‘__modff’ + __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:128:1: error: storage class specified for parameter ‘expm1f’ + __MATHCALL (expm1,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:128:1: error: storage class specified for parameter ‘__expm1f’ + __MATHCALL (expm1,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:131:1: error: storage class specified for parameter ‘log1pf’ + __MATHCALL (log1p,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:131:1: error: storage class specified for parameter ‘__log1pf’ + __MATHCALL (log1p,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:134:1: error: storage class specified for parameter ‘logbf’ + __MATHCALL (logb,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:134:1: error: storage class specified for parameter ‘__logbf’ + __MATHCALL (logb,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:141:1: error: storage class specified for parameter ‘exp2f’ + __MATHCALL (exp2,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:141:1: error: storage class specified for parameter ‘__exp2f’ + __MATHCALL (exp2,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:144:1: error: storage class specified for parameter ‘log2f’ + __MATHCALL (log2,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:144:1: error: storage class specified for parameter ‘__log2f’ + __MATHCALL (log2,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:153:1: error: storage class specified for parameter ‘powf’ + __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:153:1: error: storage class specified for parameter ‘__powf’ + __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:156:1: error: storage class specified for parameter ‘sqrtf’ + __MATHCALL (sqrt,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:156:1: error: storage class specified for parameter ‘__sqrtf’ + __MATHCALL (sqrt,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:162:1: error: storage class specified for parameter ‘hypotf’ + __MATHCALL (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:162:1: error: storage class specified for parameter ‘__hypotf’ + __MATHCALL (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:169:1: error: storage class specified for parameter ‘cbrtf’ + __MATHCALL (cbrt,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:169:1: error: storage class specified for parameter ‘__cbrtf’ + __MATHCALL (cbrt,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:178:1: error: storage class specified for parameter ‘ceilf’ + __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:178:1: error: storage class specified for parameter ‘__ceilf’ + __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:181:1: error: storage class specified for parameter ‘fabsf’ + __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:181:1: error: storage class specified for parameter ‘__fabsf’ + __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:184:1: error: storage class specified for parameter ‘floorf’ + __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:184:1: error: storage class specified for parameter ‘__floorf’ + __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:187:1: error: storage class specified for parameter ‘fmodf’ + __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:187:1: error: storage class specified for parameter ‘__fmodf’ + __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:192:1: error: storage class specified for parameter ‘__isinff’ + __MATHDECL_1 (int,__isinf,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:195:1: error: storage class specified for parameter ‘__finitef’ + __MATHDECL_1 (int,__finite,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:204:1: error: storage class specified for parameter ‘isinff’ + __MATHDECL_1 (int,isinf,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:208:1: error: storage class specified for parameter ‘finitef’ + __MATHDECL_1 (int,finite,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:211:1: error: storage class specified for parameter ‘dremf’ + __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:211:1: error: storage class specified for parameter ‘__dremf’ + __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:215:1: error: storage class specified for parameter ‘significandf’ + __MATHCALL (significand,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:215:1: error: storage class specified for parameter ‘__significandf’ + __MATHCALL (significand,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:221:1: error: storage class specified for parameter ‘copysignf’ + __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:221:1: error: storage class specified for parameter ‘__copysignf’ + __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:228:1: error: storage class specified for parameter ‘nanf’ + __MATHCALLX (nan,, (const char *__tagb), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:228:1: error: storage class specified for parameter ‘__nanf’ + __MATHCALLX (nan,, (const char *__tagb), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:234:1: error: storage class specified for parameter ‘__isnanf’ + __MATHDECL_1 (int,__isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:241:1: error: storage class specified for parameter ‘isnanf’ + __MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:247:1: error: storage class specified for parameter ‘j0f’ + __MATHCALL (j0,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:247:1: error: storage class specified for parameter ‘__j0f’ + __MATHCALL (j0,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:248:1: error: storage class specified for parameter ‘j1f’ + __MATHCALL (j1,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:248:1: error: storage class specified for parameter ‘__j1f’ + __MATHCALL (j1,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:249:1: error: storage class specified for parameter ‘jnf’ + __MATHCALL (jn,, (int, _Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:249:1: error: storage class specified for parameter ‘__jnf’ + __MATHCALL (jn,, (int, _Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:250:1: error: storage class specified for parameter ‘y0f’ + __MATHCALL (y0,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:250:1: error: storage class specified for parameter ‘__y0f’ + __MATHCALL (y0,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:251:1: error: storage class specified for parameter ‘y1f’ + __MATHCALL (y1,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:251:1: error: storage class specified for parameter ‘__y1f’ + __MATHCALL (y1,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:252:1: error: storage class specified for parameter ‘ynf’ + __MATHCALL (yn,, (int, _Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:252:1: error: storage class specified for parameter ‘__ynf’ + __MATHCALL (yn,, (int, _Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:259:1: error: storage class specified for parameter ‘erff’ + __MATHCALL (erf,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:259:1: error: storage class specified for parameter ‘__erff’ + __MATHCALL (erf,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:260:1: error: storage class specified for parameter ‘erfcf’ + __MATHCALL (erfc,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:260:1: error: storage class specified for parameter ‘__erfcf’ + __MATHCALL (erfc,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:261:1: error: storage class specified for parameter ‘lgammaf’ + __MATHCALL (lgamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:261:1: error: storage class specified for parameter ‘__lgammaf’ + __MATHCALL (lgamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:268:1: error: storage class specified for parameter ‘tgammaf’ + __MATHCALL (tgamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:268:1: error: storage class specified for parameter ‘__tgammaf’ + __MATHCALL (tgamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:274:1: error: storage class specified for parameter ‘gammaf’ + __MATHCALL (gamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:274:1: error: storage class specified for parameter ‘__gammaf’ + __MATHCALL (gamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:281:1: error: storage class specified for parameter ‘lgammaf_r’ + __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:281:1: error: storage class specified for parameter ‘__lgammaf_r’ + __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:289:1: error: storage class specified for parameter ‘rintf’ + __MATHCALL (rint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:289:1: error: storage class specified for parameter ‘__rintf’ + __MATHCALL (rint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:292:1: error: storage class specified for parameter ‘nextafterf’ + __MATHCALLX (nextafter,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:292:1: error: storage class specified for parameter ‘__nextafterf’ + __MATHCALLX (nextafter,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:294:1: error: storage class specified for parameter ‘nexttowardf’ + __MATHCALLX (nexttoward,, (_Mdouble_ __x, long double __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:294:1: error: storage class specified for parameter ‘__nexttowardf’ + __MATHCALLX (nexttoward,, (_Mdouble_ __x, long double __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:298:1: error: storage class specified for parameter ‘remainderf’ + __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:298:1: error: storage class specified for parameter ‘__remainderf’ + __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:302:1: error: storage class specified for parameter ‘scalbnf’ + __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:302:1: error: storage class specified for parameter ‘__scalbnf’ + __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:306:1: error: storage class specified for parameter ‘ilogbf’ + __MATHDECL (int,ilogb,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:306:1: error: storage class specified for parameter ‘__ilogbf’ + __MATHDECL (int,ilogb,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:311:1: error: storage class specified for parameter ‘scalblnf’ + __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:311:1: error: storage class specified for parameter ‘__scalblnf’ + __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:315:1: error: storage class specified for parameter ‘nearbyintf’ + __MATHCALL (nearbyint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:315:1: error: storage class specified for parameter ‘__nearbyintf’ + __MATHCALL (nearbyint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:319:1: error: storage class specified for parameter ‘roundf’ + __MATHCALLX (round,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:319:1: error: storage class specified for parameter ‘__roundf’ + __MATHCALLX (round,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:323:1: error: storage class specified for parameter ‘truncf’ + __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:323:1: error: storage class specified for parameter ‘__truncf’ + __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:328:1: error: storage class specified for parameter ‘remquof’ + __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:328:1: error: storage class specified for parameter ‘__remquof’ + __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:335:1: error: storage class specified for parameter ‘lrintf’ + __MATHDECL (long int,lrint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:335:1: error: storage class specified for parameter ‘__lrintf’ + __MATHDECL (long int,lrint,, (_Mdouble_ __x)); + ^ +In file included from /usr/include/math.h:104:0, + from ../redist/linmath.c:4: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:336:1: error: expected declaration specifiers before ‘__extension__’ + __extension__ + ^ +In file included from ../redist/linmath.c:4:0: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:337:1: error: storage class specified for parameter ‘__llrintf’ + __MATHDECL (long long int,llrint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:341:1: error: storage class specified for parameter ‘lroundf’ + __MATHDECL (long int,lround,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:341:1: error: storage class specified for parameter ‘__lroundf’ + __MATHDECL (long int,lround,, (_Mdouble_ __x)); + ^ +In file included from /usr/include/math.h:104:0, + from ../redist/linmath.c:4: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:342:1: error: expected declaration specifiers before ‘__extension__’ + __extension__ + ^ +In file included from ../redist/linmath.c:4:0: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:343:1: error: storage class specified for parameter ‘__llroundf’ + __MATHDECL (long long int,llround,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:347:1: error: storage class specified for parameter ‘fdimf’ + __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:347:1: error: storage class specified for parameter ‘__fdimf’ + __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:350:1: error: storage class specified for parameter ‘fmaxf’ + __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:350:1: error: storage class specified for parameter ‘__fmaxf’ + __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:353:1: error: storage class specified for parameter ‘fminf’ + __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:353:1: error: storage class specified for parameter ‘__fminf’ + __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:357:1: error: storage class specified for parameter ‘__fpclassifyf’ + __MATHDECL_1 (int, __fpclassify,, (_Mdouble_ __value)) + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:361:1: error: storage class specified for parameter ‘__signbitf’ + __MATHDECL_1 (int, __signbit,, (_Mdouble_ __value)) + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:366:1: error: storage class specified for parameter ‘fmaf’ + __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:366:1: error: storage class specified for parameter ‘__fmaf’ + __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:383:1: error: storage class specified for parameter ‘scalbf’ + __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:383:1: error: storage class specified for parameter ‘__scalbf’ + __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); + ^ +In file included from ../redist/linmath.c:4:0: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:54:1: error: storage class specified for parameter ‘acosl’ + __MATHCALL (acos,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:54:1: error: storage class specified for parameter ‘__acosl’ + __MATHCALL (acos,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:56:1: error: storage class specified for parameter ‘asinl’ + __MATHCALL (asin,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:56:1: error: storage class specified for parameter ‘__asinl’ + __MATHCALL (asin,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:58:1: error: storage class specified for parameter ‘atanl’ + __MATHCALL (atan,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:58:1: error: storage class specified for parameter ‘__atanl’ + __MATHCALL (atan,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:60:1: error: storage class specified for parameter ‘atan2l’ + __MATHCALL (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:60:1: error: storage class specified for parameter ‘__atan2l’ + __MATHCALL (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:63:1: error: storage class specified for parameter ‘cosl’ + __MATHCALL_VEC (cos,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:63:1: error: storage class specified for parameter ‘__cosl’ + __MATHCALL_VEC (cos,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:65:1: error: storage class specified for parameter ‘sinl’ + __MATHCALL_VEC (sin,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:65:1: error: storage class specified for parameter ‘__sinl’ + __MATHCALL_VEC (sin,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:67:1: error: storage class specified for parameter ‘tanl’ + __MATHCALL (tan,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:67:1: error: storage class specified for parameter ‘__tanl’ + __MATHCALL (tan,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:72:1: error: storage class specified for parameter ‘coshl’ + __MATHCALL (cosh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:72:1: error: storage class specified for parameter ‘__coshl’ + __MATHCALL (cosh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:74:1: error: storage class specified for parameter ‘sinhl’ + __MATHCALL (sinh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:74:1: error: storage class specified for parameter ‘__sinhl’ + __MATHCALL (sinh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:76:1: error: storage class specified for parameter ‘tanhl’ + __MATHCALL (tanh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:76:1: error: storage class specified for parameter ‘__tanhl’ + __MATHCALL (tanh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:88:1: error: storage class specified for parameter ‘acoshl’ + __MATHCALL (acosh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:88:1: error: storage class specified for parameter ‘__acoshl’ + __MATHCALL (acosh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:90:1: error: storage class specified for parameter ‘asinhl’ + __MATHCALL (asinh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:90:1: error: storage class specified for parameter ‘__asinhl’ + __MATHCALL (asinh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:92:1: error: storage class specified for parameter ‘atanhl’ + __MATHCALL (atanh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:92:1: error: storage class specified for parameter ‘__atanhl’ + __MATHCALL (atanh,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:100:1: error: storage class specified for parameter ‘expl’ + __MATHCALL_VEC (exp,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:100:1: error: storage class specified for parameter ‘__expl’ + __MATHCALL_VEC (exp,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:103:1: error: storage class specified for parameter ‘frexpl’ + __MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:103:1: error: storage class specified for parameter ‘__frexpl’ + __MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:106:1: error: storage class specified for parameter ‘ldexpl’ + __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:106:1: error: storage class specified for parameter ‘__ldexpl’ + __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:109:1: error: storage class specified for parameter ‘logl’ + __MATHCALL_VEC (log,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:109:1: error: storage class specified for parameter ‘__logl’ + __MATHCALL_VEC (log,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:112:1: error: storage class specified for parameter ‘log10l’ + __MATHCALL (log10,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:112:1: error: storage class specified for parameter ‘__log10l’ + __MATHCALL (log10,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:115:1: error: storage class specified for parameter ‘modfl’ + __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:115:1: error: storage class specified for parameter ‘__modfl’ + __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:128:1: error: storage class specified for parameter ‘expm1l’ + __MATHCALL (expm1,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:128:1: error: storage class specified for parameter ‘__expm1l’ + __MATHCALL (expm1,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:131:1: error: storage class specified for parameter ‘log1pl’ + __MATHCALL (log1p,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:131:1: error: storage class specified for parameter ‘__log1pl’ + __MATHCALL (log1p,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:134:1: error: storage class specified for parameter ‘logbl’ + __MATHCALL (logb,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:134:1: error: storage class specified for parameter ‘__logbl’ + __MATHCALL (logb,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:141:1: error: storage class specified for parameter ‘exp2l’ + __MATHCALL (exp2,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:141:1: error: storage class specified for parameter ‘__exp2l’ + __MATHCALL (exp2,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:144:1: error: storage class specified for parameter ‘log2l’ + __MATHCALL (log2,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:144:1: error: storage class specified for parameter ‘__log2l’ + __MATHCALL (log2,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:153:1: error: storage class specified for parameter ‘powl’ + __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:153:1: error: storage class specified for parameter ‘__powl’ + __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:156:1: error: storage class specified for parameter ‘sqrtl’ + __MATHCALL (sqrt,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:156:1: error: storage class specified for parameter ‘__sqrtl’ + __MATHCALL (sqrt,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:162:1: error: storage class specified for parameter ‘hypotl’ + __MATHCALL (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:162:1: error: storage class specified for parameter ‘__hypotl’ + __MATHCALL (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:169:1: error: storage class specified for parameter ‘cbrtl’ + __MATHCALL (cbrt,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:169:1: error: storage class specified for parameter ‘__cbrtl’ + __MATHCALL (cbrt,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:178:1: error: storage class specified for parameter ‘ceill’ + __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:178:1: error: storage class specified for parameter ‘__ceill’ + __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:181:1: error: storage class specified for parameter ‘fabsl’ + __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:181:1: error: storage class specified for parameter ‘__fabsl’ + __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:184:1: error: storage class specified for parameter ‘floorl’ + __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:184:1: error: storage class specified for parameter ‘__floorl’ + __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:187:1: error: storage class specified for parameter ‘fmodl’ + __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:187:1: error: storage class specified for parameter ‘__fmodl’ + __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:192:1: error: storage class specified for parameter ‘__isinfl’ + __MATHDECL_1 (int,__isinf,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:195:1: error: storage class specified for parameter ‘__finitel’ + __MATHDECL_1 (int,__finite,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:204:1: error: storage class specified for parameter ‘isinfl’ + __MATHDECL_1 (int,isinf,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:208:1: error: storage class specified for parameter ‘finitel’ + __MATHDECL_1 (int,finite,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:211:1: error: storage class specified for parameter ‘dreml’ + __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:211:1: error: storage class specified for parameter ‘__dreml’ + __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:215:1: error: storage class specified for parameter ‘significandl’ + __MATHCALL (significand,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:215:1: error: storage class specified for parameter ‘__significandl’ + __MATHCALL (significand,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:221:1: error: storage class specified for parameter ‘copysignl’ + __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:221:1: error: storage class specified for parameter ‘__copysignl’ + __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:228:1: error: storage class specified for parameter ‘nanl’ + __MATHCALLX (nan,, (const char *__tagb), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:228:1: error: storage class specified for parameter ‘__nanl’ + __MATHCALLX (nan,, (const char *__tagb), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:234:1: error: storage class specified for parameter ‘__isnanl’ + __MATHDECL_1 (int,__isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:241:1: error: storage class specified for parameter ‘isnanl’ + __MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:247:1: error: storage class specified for parameter ‘j0l’ + __MATHCALL (j0,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:247:1: error: storage class specified for parameter ‘__j0l’ + __MATHCALL (j0,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:248:1: error: storage class specified for parameter ‘j1l’ + __MATHCALL (j1,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:248:1: error: storage class specified for parameter ‘__j1l’ + __MATHCALL (j1,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:249:1: error: storage class specified for parameter ‘jnl’ + __MATHCALL (jn,, (int, _Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:249:1: error: storage class specified for parameter ‘__jnl’ + __MATHCALL (jn,, (int, _Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:250:1: error: storage class specified for parameter ‘y0l’ + __MATHCALL (y0,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:250:1: error: storage class specified for parameter ‘__y0l’ + __MATHCALL (y0,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:251:1: error: storage class specified for parameter ‘y1l’ + __MATHCALL (y1,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:251:1: error: storage class specified for parameter ‘__y1l’ + __MATHCALL (y1,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:252:1: error: storage class specified for parameter ‘ynl’ + __MATHCALL (yn,, (int, _Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:252:1: error: storage class specified for parameter ‘__ynl’ + __MATHCALL (yn,, (int, _Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:259:1: error: storage class specified for parameter ‘erfl’ + __MATHCALL (erf,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:259:1: error: storage class specified for parameter ‘__erfl’ + __MATHCALL (erf,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:260:1: error: storage class specified for parameter ‘erfcl’ + __MATHCALL (erfc,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:260:1: error: storage class specified for parameter ‘__erfcl’ + __MATHCALL (erfc,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:261:1: error: storage class specified for parameter ‘lgammal’ + __MATHCALL (lgamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:261:1: error: storage class specified for parameter ‘__lgammal’ + __MATHCALL (lgamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:268:1: error: storage class specified for parameter ‘tgammal’ + __MATHCALL (tgamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:268:1: error: storage class specified for parameter ‘__tgammal’ + __MATHCALL (tgamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:274:1: error: storage class specified for parameter ‘gammal’ + __MATHCALL (gamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:274:1: error: storage class specified for parameter ‘__gammal’ + __MATHCALL (gamma,, (_Mdouble_)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:281:1: error: storage class specified for parameter ‘lgammal_r’ + __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:281:1: error: storage class specified for parameter ‘__lgammal_r’ + __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:289:1: error: storage class specified for parameter ‘rintl’ + __MATHCALL (rint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:289:1: error: storage class specified for parameter ‘__rintl’ + __MATHCALL (rint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:292:1: error: storage class specified for parameter ‘nextafterl’ + __MATHCALLX (nextafter,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:292:1: error: storage class specified for parameter ‘__nextafterl’ + __MATHCALLX (nextafter,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:294:1: error: storage class specified for parameter ‘nexttowardl’ + __MATHCALLX (nexttoward,, (_Mdouble_ __x, long double __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:294:1: error: storage class specified for parameter ‘__nexttowardl’ + __MATHCALLX (nexttoward,, (_Mdouble_ __x, long double __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:298:1: error: storage class specified for parameter ‘remainderl’ + __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:298:1: error: storage class specified for parameter ‘__remainderl’ + __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:302:1: error: storage class specified for parameter ‘scalbnl’ + __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:302:1: error: storage class specified for parameter ‘__scalbnl’ + __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:306:1: error: storage class specified for parameter ‘ilogbl’ + __MATHDECL (int,ilogb,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:306:1: error: storage class specified for parameter ‘__ilogbl’ + __MATHDECL (int,ilogb,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:311:1: error: storage class specified for parameter ‘scalblnl’ + __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:311:1: error: storage class specified for parameter ‘__scalblnl’ + __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:315:1: error: storage class specified for parameter ‘nearbyintl’ + __MATHCALL (nearbyint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:315:1: error: storage class specified for parameter ‘__nearbyintl’ + __MATHCALL (nearbyint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:319:1: error: storage class specified for parameter ‘roundl’ + __MATHCALLX (round,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:319:1: error: storage class specified for parameter ‘__roundl’ + __MATHCALLX (round,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:323:1: error: storage class specified for parameter ‘truncl’ + __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:323:1: error: storage class specified for parameter ‘__truncl’ + __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:328:1: error: storage class specified for parameter ‘remquol’ + __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:328:1: error: storage class specified for parameter ‘__remquol’ + __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:335:1: error: storage class specified for parameter ‘lrintl’ + __MATHDECL (long int,lrint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:335:1: error: storage class specified for parameter ‘__lrintl’ + __MATHDECL (long int,lrint,, (_Mdouble_ __x)); + ^ +In file included from /usr/include/math.h:151:0, + from ../redist/linmath.c:4: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:336:1: error: expected declaration specifiers before ‘__extension__’ + __extension__ + ^ +In file included from ../redist/linmath.c:4:0: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:337:1: error: storage class specified for parameter ‘__llrintl’ + __MATHDECL (long long int,llrint,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:341:1: error: storage class specified for parameter ‘lroundl’ + __MATHDECL (long int,lround,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:341:1: error: storage class specified for parameter ‘__lroundl’ + __MATHDECL (long int,lround,, (_Mdouble_ __x)); + ^ +In file included from /usr/include/math.h:151:0, + from ../redist/linmath.c:4: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:342:1: error: expected declaration specifiers before ‘__extension__’ + __extension__ + ^ +In file included from ../redist/linmath.c:4:0: +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:343:1: error: storage class specified for parameter ‘__llroundl’ + __MATHDECL (long long int,llround,, (_Mdouble_ __x)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:347:1: error: storage class specified for parameter ‘fdiml’ + __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:347:1: error: storage class specified for parameter ‘__fdiml’ + __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:350:1: error: storage class specified for parameter ‘fmaxl’ + __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:350:1: error: storage class specified for parameter ‘__fmaxl’ + __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:353:1: error: storage class specified for parameter ‘fminl’ + __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:353:1: error: storage class specified for parameter ‘__fminl’ + __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:357:1: error: storage class specified for parameter ‘__fpclassifyl’ + __MATHDECL_1 (int, __fpclassify,, (_Mdouble_ __value)) + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:361:1: error: storage class specified for parameter ‘__signbitl’ + __MATHDECL_1 (int, __signbit,, (_Mdouble_ __value)) + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:366:1: error: storage class specified for parameter ‘fmal’ + __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:366:1: error: storage class specified for parameter ‘__fmal’ + __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:383:1: error: storage class specified for parameter ‘scalbl’ + __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); + ^ +/usr/include/x86_64-linux-gnu/bits/mathcalls.h:383:1: error: storage class specified for parameter ‘__scalbl’ + __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); + ^ +In file included from ../redist/linmath.c:4:0: +/usr/include/math.h:168:12: error: storage class specified for parameter ‘signgam’ + extern int signgam; + ^ +/usr/include/math.h:354:3: error: storage class specified for parameter ‘_LIB_VERSION_TYPE’ + } _LIB_VERSION_TYPE; + ^ +/usr/include/math.h:359:26: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_LIB_VERSION’ + extern _LIB_VERSION_TYPE _LIB_VERSION; + ^ +/usr/include/math.h:385:12: error: storage class specified for parameter ‘matherr’ + extern int matherr (struct exception *__exc); + ^ +In file included from /usr/include/stdio.h:33:0, + from ../redist/linmath.c:6: +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:216:23: error: storage class specified for parameter ‘size_t’ + typedef __SIZE_TYPE__ size_t; + ^ +In file included from /usr/include/stdio.h:35:0, + from ../redist/linmath.c:6: +/usr/include/x86_64-linux-gnu/bits/types.h:30:23: error: storage class specified for parameter ‘__u_char’ + typedef unsigned char __u_char; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:31:28: error: storage class specified for parameter ‘__u_short’ + typedef unsigned short int __u_short; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:32:22: error: storage class specified for parameter ‘__u_int’ + typedef unsigned int __u_int; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:33:27: error: storage class specified for parameter ‘__u_long’ + typedef unsigned long int __u_long; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:36:21: error: storage class specified for parameter ‘__int8_t’ + typedef signed char __int8_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:37:23: error: storage class specified for parameter ‘__uint8_t’ + typedef unsigned char __uint8_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:38:26: error: storage class specified for parameter ‘__int16_t’ + typedef signed short int __int16_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:39:28: error: storage class specified for parameter ‘__uint16_t’ + typedef unsigned short int __uint16_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:40:20: error: storage class specified for parameter ‘__int32_t’ + typedef signed int __int32_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:41:22: error: storage class specified for parameter ‘__uint32_t’ + typedef unsigned int __uint32_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:43:25: error: storage class specified for parameter ‘__int64_t’ + typedef signed long int __int64_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:44:27: error: storage class specified for parameter ‘__uint64_t’ + typedef unsigned long int __uint64_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:52:18: error: storage class specified for parameter ‘__quad_t’ + typedef long int __quad_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:53:27: error: storage class specified for parameter ‘__u_quad_t’ + typedef unsigned long int __u_quad_t; + ^ +In file included from /usr/include/stdio.h:35:0, + from ../redist/linmath.c:6: +/usr/include/x86_64-linux-gnu/bits/types.h:124:25: error: storage class specified for parameter ‘__dev_t’ + __STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:125:25: error: storage class specified for parameter ‘__uid_t’ + __STD_TYPE __UID_T_TYPE __uid_t; /* Type of user identifications. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:126:25: error: storage class specified for parameter ‘__gid_t’ + __STD_TYPE __GID_T_TYPE __gid_t; /* Type of group identifications. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:127:25: error: storage class specified for parameter ‘__ino_t’ + __STD_TYPE __INO_T_TYPE __ino_t; /* Type of file serial numbers. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:128:27: error: storage class specified for parameter ‘__ino64_t’ + __STD_TYPE __INO64_T_TYPE __ino64_t; /* Type of file serial numbers (LFS).*/ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:129:26: error: storage class specified for parameter ‘__mode_t’ + __STD_TYPE __MODE_T_TYPE __mode_t; /* Type of file attribute bitmasks. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:130:27: error: storage class specified for parameter ‘__nlink_t’ + __STD_TYPE __NLINK_T_TYPE __nlink_t; /* Type of file link counts. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:131:25: error: storage class specified for parameter ‘__off_t’ + __STD_TYPE __OFF_T_TYPE __off_t; /* Type of file sizes and offsets. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:132:27: error: storage class specified for parameter ‘__off64_t’ + __STD_TYPE __OFF64_T_TYPE __off64_t; /* Type of file sizes and offsets (LFS). */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:133:25: error: storage class specified for parameter ‘__pid_t’ + __STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:134:26: error: storage class specified for parameter ‘__fsid_t’ + __STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:135:27: error: storage class specified for parameter ‘__clock_t’ + __STD_TYPE __CLOCK_T_TYPE __clock_t; /* Type of CPU usage counts. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:136:26: error: storage class specified for parameter ‘__rlim_t’ + __STD_TYPE __RLIM_T_TYPE __rlim_t; /* Type for resource measurement. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:137:28: error: storage class specified for parameter ‘__rlim64_t’ + __STD_TYPE __RLIM64_T_TYPE __rlim64_t; /* Type for resource measurement (LFS). */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:138:24: error: storage class specified for parameter ‘__id_t’ + __STD_TYPE __ID_T_TYPE __id_t; /* General type for IDs. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:139:26: error: storage class specified for parameter ‘__time_t’ + __STD_TYPE __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:140:30: error: storage class specified for parameter ‘__useconds_t’ + __STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:141:31: error: storage class specified for parameter ‘__suseconds_t’ + __STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:143:27: error: storage class specified for parameter ‘__daddr_t’ + __STD_TYPE __DADDR_T_TYPE __daddr_t; /* The type of a disk address. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:144:25: error: storage class specified for parameter ‘__key_t’ + __STD_TYPE __KEY_T_TYPE __key_t; /* Type of an IPC key. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:147:29: error: storage class specified for parameter ‘__clockid_t’ + __STD_TYPE __CLOCKID_T_TYPE __clockid_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:150:27: error: storage class specified for parameter ‘__timer_t’ + __STD_TYPE __TIMER_T_TYPE __timer_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:153:29: error: storage class specified for parameter ‘__blksize_t’ + __STD_TYPE __BLKSIZE_T_TYPE __blksize_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:158:28: error: storage class specified for parameter ‘__blkcnt_t’ + __STD_TYPE __BLKCNT_T_TYPE __blkcnt_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:159:30: error: storage class specified for parameter ‘__blkcnt64_t’ + __STD_TYPE __BLKCNT64_T_TYPE __blkcnt64_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:162:30: error: storage class specified for parameter ‘__fsblkcnt_t’ + __STD_TYPE __FSBLKCNT_T_TYPE __fsblkcnt_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:163:32: error: storage class specified for parameter ‘__fsblkcnt64_t’ + __STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:166:30: error: storage class specified for parameter ‘__fsfilcnt_t’ + __STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:167:32: error: storage class specified for parameter ‘__fsfilcnt64_t’ + __STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:170:28: error: storage class specified for parameter ‘__fsword_t’ + __STD_TYPE __FSWORD_T_TYPE __fsword_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:172:27: error: storage class specified for parameter ‘__ssize_t’ + __STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error. */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:175:33: error: storage class specified for parameter ‘__syscall_slong_t’ + __STD_TYPE __SYSCALL_SLONG_TYPE __syscall_slong_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:177:33: error: storage class specified for parameter ‘__syscall_ulong_t’ + __STD_TYPE __SYSCALL_ULONG_TYPE __syscall_ulong_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:181:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__loff_t’ + typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS). */ + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:182:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token + typedef __quad_t *__qaddr_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:183:15: error: storage class specified for parameter ‘__caddr_t’ + typedef char *__caddr_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:186:25: error: storage class specified for parameter ‘__intptr_t’ + __STD_TYPE __SWORD_TYPE __intptr_t; + ^ +/usr/include/x86_64-linux-gnu/bits/types.h:189:23: error: storage class specified for parameter ‘__socklen_t’ + __STD_TYPE __U32_TYPE __socklen_t; + ^ +In file included from ../redist/linmath.c:6:0: +/usr/include/stdio.h:48:25: error: storage class specified for parameter ‘FILE’ + typedef struct _IO_FILE FILE; + ^ +/usr/include/stdio.h:64:25: error: storage class specified for parameter ‘__FILE’ + typedef struct _IO_FILE __FILE; + ^ +In file included from /usr/include/_G_config.h:20:0, + from /usr/include/libio.h:31, + from /usr/include/stdio.h:74, + from ../redist/linmath.c:6: +/usr/include/wchar.h:94:3: error: storage class specified for parameter ‘__mbstate_t’ + } __mbstate_t; + ^ +In file included from /usr/include/libio.h:31:0, + from /usr/include/stdio.h:74, + from ../redist/linmath.c:6: +/usr/include/_G_config.h:23:3: error: expected specifier-qualifier-list before ‘__off_t’ + __off_t __pos; + ^ +/usr/include/_G_config.h:25:3: error: storage class specified for parameter ‘_G_fpos_t’ + } _G_fpos_t; + ^ +/usr/include/_G_config.h:28:3: error: expected specifier-qualifier-list before ‘__off64_t’ + __off64_t __pos; + ^ +/usr/include/_G_config.h:30:3: error: storage class specified for parameter ‘_G_fpos64_t’ + } _G_fpos64_t; + ^ +In file included from /usr/include/libio.h:49:0, + from /usr/include/stdio.h:74, + from ../redist/linmath.c:6: +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:40:27: error: storage class specified for parameter ‘__gnuc_va_list’ + typedef __builtin_va_list __gnuc_va_list; + ^ +In file included from /usr/include/stdio.h:74:0, + from ../redist/linmath.c:6: +/usr/include/libio.h:150:14: error: storage class specified for parameter ‘_IO_lock_t’ + typedef void _IO_lock_t; + ^ +In file included from /usr/include/stdio.h:74:0, + from ../redist/linmath.c:6: +/usr/include/libio.h:270:3: error: expected specifier-qualifier-list before ‘__off_t’ + _IO_off_t _old_offset; /* This used to be _offset but it's too small. */ + ^ +In file included from /usr/include/stdio.h:74:0, + from ../redist/linmath.c:6: +/usr/include/libio.h:310:25: error: storage class specified for parameter ‘_IO_FILE’ + typedef struct _IO_FILE _IO_FILE; + ^ +/usr/include/libio.h:315:29: error: storage class specified for parameter ‘_IO_2_1_stdin_’ + extern struct _IO_FILE_plus _IO_2_1_stdin_; + ^ +/usr/include/libio.h:316:29: error: storage class specified for parameter ‘_IO_2_1_stdout_’ + extern struct _IO_FILE_plus _IO_2_1_stdout_; + ^ +/usr/include/libio.h:317:29: error: storage class specified for parameter ‘_IO_2_1_stderr_’ + extern struct _IO_FILE_plus _IO_2_1_stderr_; + ^ +/usr/include/libio.h:333:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__io_read_fn’ + typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); + ^ +/usr/include/libio.h:341:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__io_write_fn’ + typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf, + ^ +In file included from /usr/include/stdio.h:74:0, + from ../redist/linmath.c:6: +/usr/include/libio.h:350:43: error: expected declaration specifiers or ‘...’ before ‘__off64_t’ + typedef int __io_seek_fn (void *__cookie, _IO_off64_t *__pos, int __w); + ^ +In file included from /usr/include/stdio.h:74:0, + from ../redist/linmath.c:6: +/usr/include/libio.h:353:13: error: storage class specified for parameter ‘__io_close_fn’ + typedef int __io_close_fn (void *__cookie); + ^ +/usr/include/libio.h:385:25: error: expected declaration specifiers or ‘...’ before ‘_IO_FILE’ + extern int __underflow (_IO_FILE *); + ^ +/usr/include/libio.h:386:21: error: expected declaration specifiers or ‘...’ before ‘_IO_FILE’ + extern int __uflow (_IO_FILE *); + ^ +/usr/include/libio.h:387:24: error: expected declaration specifiers or ‘...’ before ‘_IO_FILE’ + extern int __overflow (_IO_FILE *, int); + ^ +/usr/include/libio.h:429:22: error: expected declaration specifiers or ‘...’ before ‘_IO_FILE’ + extern int _IO_getc (_IO_FILE *__fp); + ^ +/usr/include/libio.h:430:31: error: expected declaration specifiers or ‘...’ before ‘_IO_FILE’ + extern int _IO_putc (int __c, _IO_FILE *__fp); + ^ +/usr/include/libio.h:431:22: error: expected declaration specifiers or ‘...’ before ‘_IO_FILE’ + extern int _IO_feof (_IO_FILE *__fp) __THROW; + ^ +/usr/include/libio.h:432:24: error: expected declaration specifiers or ‘...’ before ‘_IO_FILE’ + extern int _IO_ferror (_IO_FILE *__fp) __THROW; + ^ +/usr/include/libio.h:434:30: error: expected declaration specifiers or ‘...’ before ‘_IO_FILE’ + extern int _IO_peekc_locked (_IO_FILE *__fp); + ^ +/usr/include/libio.h:440:28: error: expected declaration specifiers or ‘...’ before ‘_IO_FILE’ + extern void _IO_flockfile (_IO_FILE *) __THROW; + ^ +/usr/include/libio.h:441:30: error: expected declaration specifiers or ‘...’ before ‘_IO_FILE’ + extern void _IO_funlockfile (_IO_FILE *) __THROW; + ^ +/usr/include/libio.h:442:30: error: expected declaration specifiers or ‘...’ before ‘_IO_FILE’ + extern int _IO_ftrylockfile (_IO_FILE *) __THROW; + ^ +/usr/include/libio.h:459:25: error: expected declaration specifiers or ‘...’ before ‘_IO_FILE’ + extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, + ^ +/usr/include/libio.h:460:4: error: expected declaration specifiers or ‘...’ before ‘__gnuc_va_list’ + _IO_va_list, int *__restrict); + ^ +/usr/include/libio.h:461:26: error: expected declaration specifiers or ‘...’ before ‘_IO_FILE’ + extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, + ^ +/usr/include/libio.h:462:5: error: expected declaration specifiers or ‘...’ before ‘__gnuc_va_list’ + _IO_va_list); + ^ +/usr/include/libio.h:463:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_IO_padn’ + extern _IO_ssize_t _IO_padn (_IO_FILE *, int, _IO_ssize_t); + ^ +/usr/include/libio.h:464:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_IO_sgetn’ + extern _IO_size_t _IO_sgetn (_IO_FILE *, void *, _IO_size_t); + ^ +/usr/include/libio.h:466:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_IO_seekoff’ + extern _IO_off64_t _IO_seekoff (_IO_FILE *, _IO_off64_t, int, int); + ^ +/usr/include/libio.h:467:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_IO_seekpos’ + extern _IO_off64_t _IO_seekpos (_IO_FILE *, _IO_off64_t, int); + ^ +/usr/include/libio.h:469:35: error: expected declaration specifiers or ‘...’ before ‘_IO_FILE’ + extern void _IO_free_backup_area (_IO_FILE *) __THROW; + ^ +In file included from ../redist/linmath.c:6:0: +/usr/include/stdio.h:79:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘va_list’ + typedef _G_va_list va_list; + ^ +/usr/include/stdio.h:90:17: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘off_t’ + typedef __off_t off_t; + ^ +/usr/include/stdio.h:102:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ssize_t’ + typedef __ssize_t ssize_t; + ^ +/usr/include/stdio.h:110:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fpos_t’ + typedef _G_fpos_t fpos_t; + ^ +In file included from ../redist/linmath.c:6:0: +/usr/include/stdio.h:168:25: error: storage class specified for parameter ‘stdin’ + extern struct _IO_FILE *stdin; /* Standard input stream. */ + ^ +/usr/include/stdio.h:169:25: error: storage class specified for parameter ‘stdout’ + extern struct _IO_FILE *stdout; /* Standard output stream. */ + ^ +/usr/include/stdio.h:170:25: error: storage class specified for parameter ‘stderr’ + extern struct _IO_FILE *stderr; /* Standard error output stream. */ + ^ +/usr/include/stdio.h:178:12: error: storage class specified for parameter ‘remove’ + extern int remove (const char *__filename) __THROW; + ^ +/usr/include/stdio.h:180:12: error: storage class specified for parameter ‘rename’ + extern int rename (const char *__old, const char *__new) __THROW; + ^ +/usr/include/stdio.h:185:12: error: storage class specified for parameter ‘renameat’ + extern int renameat (int __oldfd, const char *__old, int __newfd, + ^ +/usr/include/stdio.h:195:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token + extern FILE *tmpfile (void) __wur; + ^ +/usr/include/stdio.h:209:14: error: storage class specified for parameter ‘tmpnam’ + extern char *tmpnam (char *__s) __THROW __wur; + ^ +/usr/include/stdio.h:215:14: error: storage class specified for parameter ‘tmpnam_r’ + extern char *tmpnam_r (char *__s) __THROW __wur; + ^ +/usr/include/stdio.h:227:14: error: storage class specified for parameter ‘tempnam’ + extern char *tempnam (const char *__dir, const char *__pfx) + ^ +/usr/include/stdio.h:237:20: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fclose (FILE *__stream); + ^ +/usr/include/stdio.h:242:20: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fflush (FILE *__stream); + ^ +/usr/include/stdio.h:252:29: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fflush_unlocked (FILE *__stream); + ^ +/usr/include/stdio.h:272:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token + extern FILE *fopen (const char *__restrict __filename, + ^ +/usr/include/stdio.h:278:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token + extern FILE *freopen (const char *__restrict __filename, + ^ +/usr/include/stdio.h:306:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token + extern FILE *fdopen (int __fd, const char *__modes) __THROW __wur; + ^ +/usr/include/stdio.h:319:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token + extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) + ^ +/usr/include/stdio.h:325:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token + extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __THROW __wur; + ^ +/usr/include/stdio.h:332:21: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __THROW; + ^ +/usr/include/stdio.h:336:21: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, + ^ +/usr/include/stdio.h:337:20: error: expected declaration specifiers or ‘...’ before ‘size_t’ + int __modes, size_t __n) __THROW; + ^ +/usr/include/stdio.h:343:24: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, + ^ +/usr/include/stdio.h:344:10: error: expected declaration specifiers or ‘...’ before ‘size_t’ + size_t __size) __THROW; + ^ +/usr/include/stdio.h:347:25: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern void setlinebuf (FILE *__stream) __THROW; + ^ +/usr/include/stdio.h:356:21: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fprintf (FILE *__restrict __stream, + ^ +/usr/include/stdio.h:362:12: error: storage class specified for parameter ‘printf’ + extern int printf (const char *__restrict __format, ...); + ^ +/usr/include/stdio.h:364:12: error: storage class specified for parameter ‘sprintf’ + extern int sprintf (char *__restrict __s, + ^ +/usr/include/stdio.h:371:22: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, + ^ +In file included from /usr/include/libio.h:31:0, + from /usr/include/stdio.h:74, + from ../redist/linmath.c:6: +/usr/include/stdio.h:372:8: error: expected declaration specifiers or ‘...’ before ‘__gnuc_va_list’ + _G_va_list __arg); + ^ +/usr/include/stdio.h:377:54: error: expected declaration specifiers or ‘...’ before ‘__gnuc_va_list’ + extern int vprintf (const char *__restrict __format, _G_va_list __arg); + ^ +/usr/include/stdio.h:380:8: error: expected declaration specifiers or ‘...’ before ‘__gnuc_va_list’ + _G_va_list __arg) __THROWNL; + ^ +In file included from ../redist/linmath.c:6:0: +/usr/include/stdio.h:386:44: error: expected declaration specifiers or ‘...’ before ‘size_t’ + extern int snprintf (char *__restrict __s, size_t __maxlen, + ^ +/usr/include/stdio.h:390:45: error: expected declaration specifiers or ‘...’ before ‘size_t’ + extern int vsnprintf (char *__restrict __s, size_t __maxlen, + ^ +In file included from /usr/include/libio.h:31:0, + from /usr/include/stdio.h:74, + from ../redist/linmath.c:6: +/usr/include/stdio.h:391:42: error: expected declaration specifiers or ‘...’ before ‘__gnuc_va_list’ + const char *__restrict __format, _G_va_list __arg) + ^ +/usr/include/stdio.h:413:8: error: expected declaration specifiers or ‘...’ before ‘__gnuc_va_list’ + _G_va_list __arg) + ^ +In file included from ../redist/linmath.c:6:0: +/usr/include/stdio.h:415:12: error: storage class specified for parameter ‘dprintf’ + extern int dprintf (int __fd, const char *__restrict __fmt, ...) + ^ +/usr/include/stdio.h:425:20: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fscanf (FILE *__restrict __stream, + ^ +/usr/include/stdio.h:431:12: error: storage class specified for parameter ‘scanf’ + extern int scanf (const char *__restrict __format, ...) __wur; + ^ +/usr/include/stdio.h:433:12: error: storage class specified for parameter ‘sscanf’ + extern int sscanf (const char *__restrict __s, + ^ +In file included from /usr/include/features.h:367:0, + from /usr/include/math.h:26, + from ../redist/linmath.c:4: +/usr/include/stdio.h:443:12: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int __REDIRECT (fscanf, (FILE *__restrict __stream, + ^ +/usr/include/stdio.h:446:12: error: storage class specified for parameter ‘scanf’ + extern int __REDIRECT (scanf, (const char *__restrict __format, ...), + ^ +/usr/include/stdio.h:446:12: error: redefinition of parameter ‘scanf’ +In file included from ../redist/linmath.c:6:0: +/usr/include/stdio.h:431:12: note: previous definition of ‘scanf’ was here + extern int scanf (const char *__restrict __format, ...) __wur; + ^ +In file included from /usr/include/features.h:367:0, + from /usr/include/math.h:26, + from ../redist/linmath.c:4: +/usr/include/stdio.h:448:12: error: storage class specified for parameter ‘sscanf’ + extern int __REDIRECT_NTH (sscanf, (const char *__restrict __s, + ^ +/usr/include/stdio.h:448:12: error: redefinition of parameter ‘sscanf’ +In file included from ../redist/linmath.c:6:0: +/usr/include/stdio.h:433:12: note: previous definition of ‘sscanf’ was here + extern int sscanf (const char *__restrict __s, + ^ +/usr/include/stdio.h:471:21: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, + ^ +In file included from /usr/include/libio.h:31:0, + from /usr/include/stdio.h:74, + from ../redist/linmath.c:6: +/usr/include/stdio.h:472:7: error: expected declaration specifiers or ‘...’ before ‘__gnuc_va_list’ + _G_va_list __arg) + ^ +/usr/include/stdio.h:479:53: error: expected declaration specifiers or ‘...’ before ‘__gnuc_va_list’ + extern int vscanf (const char *__restrict __format, _G_va_list __arg) + ^ +/usr/include/stdio.h:484:40: error: expected declaration specifiers or ‘...’ before ‘__gnuc_va_list’ + const char *__restrict __format, _G_va_list __arg) + ^ +In file included from /usr/include/features.h:367:0, + from /usr/include/math.h:26, + from ../redist/linmath.c:4: +/usr/include/stdio.h:494:12: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int __REDIRECT (vfscanf, + ^ +/usr/include/stdio.h:496:37: error: expected declaration specifiers or ‘...’ before ‘__gnuc_va_list’ + const char *__restrict __format, _G_va_list __arg), + ^ +/usr/include/stdio.h:500:5: error: expected declaration specifiers or ‘...’ before ‘__gnuc_va_list’ + _G_va_list __arg), __isoc99_vscanf) + ^ +/usr/include/stdio.h:505:8: error: expected declaration specifiers or ‘...’ before ‘__gnuc_va_list’ + _G_va_list __arg), __isoc99_vsscanf) + ^ +In file included from ../redist/linmath.c:6:0: +/usr/include/stdio.h:531:19: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fgetc (FILE *__stream); + ^ +/usr/include/stdio.h:532:18: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int getc (FILE *__stream); + ^ +/usr/include/stdio.h:538:12: error: storage class specified for parameter ‘getchar’ + extern int getchar (void); + ^ +/usr/include/stdio.h:550:27: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int getc_unlocked (FILE *__stream); + ^ +/usr/include/stdio.h:551:12: error: storage class specified for parameter ‘getchar_unlocked’ + extern int getchar_unlocked (void); + ^ +/usr/include/stdio.h:561:28: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fgetc_unlocked (FILE *__stream); + ^ +/usr/include/stdio.h:573:28: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fputc (int __c, FILE *__stream); + ^ +/usr/include/stdio.h:574:27: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int putc (int __c, FILE *__stream); + ^ +/usr/include/stdio.h:580:12: error: storage class specified for parameter ‘putchar’ + extern int putchar (int __c); + ^ +/usr/include/stdio.h:594:37: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fputc_unlocked (int __c, FILE *__stream); + ^ +/usr/include/stdio.h:602:36: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int putc_unlocked (int __c, FILE *__stream); + ^ +/usr/include/stdio.h:603:12: error: storage class specified for parameter ‘putchar_unlocked’ + extern int putchar_unlocked (int __c); + ^ +/usr/include/stdio.h:610:18: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int getw (FILE *__stream); + ^ +/usr/include/stdio.h:613:27: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int putw (int __w, FILE *__stream); + ^ +/usr/include/stdio.h:622:52: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) + ^ +/usr/include/stdio.h:665:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__getdelim’ + extern _IO_ssize_t __getdelim (char **__restrict __lineptr, + ^ +/usr/include/stdio.h:668:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘getdelim’ + extern _IO_ssize_t getdelim (char **__restrict __lineptr, + ^ +/usr/include/stdio.h:678:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘getline’ + extern _IO_ssize_t getline (char **__restrict __lineptr, + ^ +/usr/include/stdio.h:689:47: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fputs (const char *__restrict __s, FILE *__restrict __stream); + ^ +/usr/include/stdio.h:695:12: error: storage class specified for parameter ‘puts’ + extern int puts (const char *__s); + ^ +/usr/include/stdio.h:702:29: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int ungetc (int __c, FILE *__stream); + ^ +/usr/include/stdio.h:709:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fread’ + extern size_t fread (void *__restrict __ptr, size_t __size, + ^ +/usr/include/stdio.h:715:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fwrite’ + extern size_t fwrite (const void *__restrict __ptr, size_t __size, + ^ +/usr/include/stdio.h:737:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fread_unlocked’ + extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, + ^ +/usr/include/stdio.h:739:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fwrite_unlocked’ + extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, + ^ +/usr/include/stdio.h:749:19: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fseek (FILE *__stream, long int __off, int __whence); + ^ +/usr/include/stdio.h:754:24: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern long int ftell (FILE *__stream) __wur; + ^ +/usr/include/stdio.h:759:21: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern void rewind (FILE *__stream); + ^ +/usr/include/stdio.h:773:20: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fseeko (FILE *__stream, __off_t __off, int __whence); + ^ +/usr/include/stdio.h:773:36: error: expected declaration specifiers or ‘...’ before ‘__off_t’ + extern int fseeko (FILE *__stream, __off_t __off, int __whence); + ^ +/usr/include/stdio.h:778:16: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ftello’ + extern __off_t ftello (FILE *__stream) __wur; + ^ +/usr/include/stdio.h:798:21: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); + ^ +/usr/include/stdio.h:798:48: error: unknown type name ‘fpos_t’ + extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); + ^ +/usr/include/stdio.h:803:21: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fsetpos (FILE *__stream, const fpos_t *__pos); + ^ +/usr/include/stdio.h:803:43: error: unknown type name ‘fpos_t’ + extern int fsetpos (FILE *__stream, const fpos_t *__pos); + ^ +/usr/include/stdio.h:826:23: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern void clearerr (FILE *__stream) __THROW; + ^ +/usr/include/stdio.h:828:18: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int feof (FILE *__stream) __THROW __wur; + ^ +/usr/include/stdio.h:830:20: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int ferror (FILE *__stream) __THROW __wur; + ^ +/usr/include/stdio.h:835:32: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern void clearerr_unlocked (FILE *__stream) __THROW; + ^ +/usr/include/stdio.h:836:27: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int feof_unlocked (FILE *__stream) __THROW __wur; + ^ +/usr/include/stdio.h:837:29: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int ferror_unlocked (FILE *__stream) __THROW __wur; + ^ +/usr/include/stdio.h:846:13: error: storage class specified for parameter ‘perror’ + extern void perror (const char *__s); + ^ +In file included from /usr/include/stdio.h:853:0, + from ../redist/linmath.c:6: +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:26:12: error: storage class specified for parameter ‘sys_nerr’ + extern int sys_nerr; + ^ +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:27:26: error: storage class specified for parameter ‘sys_errlist’ + extern const char *const sys_errlist[]; + ^ +In file included from ../redist/linmath.c:6:0: +/usr/include/stdio.h:858:20: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fileno (FILE *__stream) __THROW __wur; + ^ +/usr/include/stdio.h:863:29: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int fileno_unlocked (FILE *__stream) __THROW __wur; + ^ +/usr/include/stdio.h:872:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token + extern FILE *popen (const char *__command, const char *__modes) __wur; + ^ +/usr/include/stdio.h:878:20: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int pclose (FILE *__stream); + ^ +/usr/include/stdio.h:884:14: error: storage class specified for parameter ‘ctermid’ + extern char *ctermid (char *__s) __THROW; + ^ +/usr/include/stdio.h:912:24: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern void flockfile (FILE *__stream) __THROW; + ^ +/usr/include/stdio.h:916:26: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern int ftrylockfile (FILE *__stream) __THROW __wur; + ^ +/usr/include/stdio.h:919:26: error: expected declaration specifiers or ‘...’ before ‘FILE’ + extern void funlockfile (FILE *__stream) __THROW; + ^ +../redist/linmath.c:27:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:34:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:41:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:48:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:55:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:63:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:68:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:80:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:87:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:92:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:111:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:116:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:124:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:146:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:154:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:168:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:173:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:179:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:185:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:226:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:259:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:291:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:299:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:306:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:314:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:322:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:330:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:339:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:344:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:351:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:359:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:366:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:402:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:425:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:449:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:458:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +../redist/linmath.c:480:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token + { + ^ +In file included from ../redist/linmath.c:3:0: +../redist/linmath.h:106:6: error: old-style parameter declarations in prototyped function definition + void quattomatrix33(FLT * matrix33, const FLT * qin) + ^ +../redist/linmath.c:530:1: error: expected ‘{’ at end of input + } + ^ +make: *** [all] Error 1 diff --git a/dave/olddata/HMD_normals.csv b/dave/olddata/HMD_normals.csv new file mode 100644 index 0000000..9abb886 --- /dev/null +++ b/dave/olddata/HMD_normals.csv @@ -0,0 +1,32 @@ +0.656529 0.080037 0.750042 +1.000000 0.000000 0.000000 +0.951033 0.192296 -0.241987 +0.863341 0.261141 -0.431796 +0.562083 0.827080 -0.000702 +0.556742 0.818617 -0.141085 +0.127514 0.360969 0.923819 +0.197328 0.721208 0.664019 +0.197328 -0.720504 0.664783 +0.460200 0.003066 0.887810 +0.025263 -0.748333 0.662842 +0.556742 -0.818766 -0.140217 +0.562083 -0.827081 0.000175 +0.863341 -0.261598 -0.431519 +0.951034 -0.192552 -0.241783 +0.656529 -0.079242 0.750127 +-0.197328 0.721208 0.664019 +-0.127514 0.360969 0.923819 +-0.556742 0.818617 -0.141085 +-0.562083 0.827080 -0.000702 +-0.863341 0.261141 -0.431796 +-0.951033 0.192296 -0.241987 +-1.000000 0.000000 0.000000 +-0.656529 0.080037 0.750042 +-0.656529 -0.079242 0.750127 +-0.951034 -0.192552 -0.241783 +-0.863341 -0.261598 -0.431519 +-0.562083 -0.827081 0.000175 +-0.556742 -0.818766 -0.140217 +-0.025263 -0.748333 0.662842 +-0.460200 0.003066 0.887810 +-0.197328 -0.720504 0.664783 diff --git a/dave/olddata/HMD_points.csv b/dave/olddata/HMD_points.csv new file mode 100644 index 0000000..9c8f61d --- /dev/null +++ b/dave/olddata/HMD_points.csv @@ -0,0 +1,32 @@ +0.085242 0.017104 0.046493 +0.093076 -0.000052 0.035027 +0.086979 0.016748 0.020598 +0.089932 0.029368 0.029518 +0.080100 0.045401 0.034918 +0.050949 0.052772 0.033339 +0.024403 0.019970 0.059476 +0.047578 0.033637 0.053722 +0.047777 -0.034022 0.053513 +0.057882 -0.000007 0.056592 +0.027400 -0.051728 0.046844 +0.051043 -0.052940 0.032966 +0.080512 -0.045486 0.034783 +0.090041 -0.029387 0.029598 +0.086948 -0.016462 0.020596 +0.085268 -0.017169 0.046332 +-0.047738 0.033671 0.053643 +-0.024283 0.020141 0.059533 +-0.050979 0.052769 0.033118 +-0.080175 0.045313 0.034850 +-0.090020 0.029306 0.029481 +-0.087090 0.016787 0.020453 +-0.093113 0.000154 0.034906 +-0.085269 0.017293 0.046345 +-0.085128 -0.017079 0.046558 +-0.086970 -0.016675 0.020667 +-0.089911 -0.029458 0.029795 +-0.080444 -0.045268 0.034661 +-0.051102 -0.052996 0.033321 +-0.027283 -0.051820 0.046794 +-0.057974 -0.000051 0.056586 +-0.047652 -0.033921 0.053604 diff --git a/dave/olddata/ptinfo.csv b/dave/olddata/ptinfo.csv new file mode 100644 index 0000000..2dbef65 --- /dev/null +++ b/dave/olddata/ptinfo.csv @@ -0,0 +1,88 @@ +0 0 0 1024 0.054304 8.087056 7.006970 0.000005 0.000095 49.911564 +0 0 1 1024 -0.091073 7.633667 2.124995 0.000002 0.000032 28.309638 +4 0 0 1024 0.046903 7.663818 9.134277 0.000014 0.000274 87.982354 +4 0 1 1024 -0.086459 8.770345 2.726730 0.000011 0.000192 29.506709 +5 0 0 1024 0.047980 4.033020 8.087671 0.000017 0.000218 50.499310 +5 0 1 1024 -0.077373 7.318115 2.557700 0.000005 0.000082 24.065775 +6 0 0 1024 0.062184 9.521423 7.429031 0.000003 0.000035 38.676732 +6 0 1 1024 -0.073973 9.523905 1.995981 0.000002 0.000029 26.113657 +7 0 0 1024 0.056254 9.999064 7.497290 0.000003 0.000044 38.734072 +7 0 1 1024 -0.079104 9.753560 2.103774 0.000004 0.000051 33.619688 +8 1 0 1024 -0.006291 9.665955 1.987640 0.000002 0.000028 15.453922 +8 1 1 1024 -0.117330 10.177124 1.600708 0.000001 0.000018 11.038096 +9 0 0 1025 0.062143 8.118984 6.820550 0.000004 0.000055 40.521475 +9 0 1 1023 -0.085365 8.509694 1.896965 0.000003 0.000091 21719098.365862 +9 1 0 1024 0.000557 6.315043 1.998499 0.000010 0.000087 21.686142 +9 1 1 1024 -0.113388 7.437968 1.836344 0.000002 0.000035 18.467548 +10 1 0 1024 -0.009943 9.343363 1.995316 0.000002 0.000031 17.584078 +10 1 1 1024 -0.124325 9.785502 1.689753 0.000002 0.000038 11.692163 +11 1 1 1024 -0.118290 6.393616 2.064949 0.000007 0.000127 19.804200 +12 1 0 1024 -0.014712 6.424642 2.678035 0.000011 0.000116 31.494265 +12 1 1 1024 -0.109233 7.731120 2.279953 0.000007 0.000190 18.323990 +15 0 0 1024 0.060565 6.858704 7.184426 0.000008 0.000088 44.052520 +15 0 1 1024 -0.094258 6.385498 2.018832 0.000010 0.000091 29.446135 +15 1 0 1024 -0.006425 3.219747 2.549749 0.000022 0.000239 26.656846 +15 1 1 1024 -0.106455 6.234049 1.960842 0.000006 0.000076 13.899017 +17 0 0 1024 0.066623 8.772827 6.714717 0.000003 0.000034 33.014899 +17 0 1 1024 -0.060226 8.462301 2.015937 0.000002 0.000022 32.443223 +23 1 1 1024 -0.155699 4.259481 2.133325 0.000009 0.000119 14.051344 +24 1 0 1024 0.004956 2.748250 3.060253 0.000032 0.000273 24.108629 +24 1 1 1024 -0.156870 7.030355 1.539771 0.000003 0.000047 11.937263 +27 1 0 1024 -0.004080 5.997660 2.117311 0.000010 0.000096 25.358188 +27 1 1 1024 -0.157007 8.123576 1.820049 0.000003 0.000063 11.321934 +28 1 0 1024 -0.007485 3.633423 2.815398 0.000022 0.000202 29.154675 +28 1 1 1024 -0.148765 6.027649 1.957405 0.000006 0.000081 13.776313 +29 1 0 1024 -0.006364 9.275757 2.122339 0.000002 0.000026 16.821591 +29 1 1 1024 -0.140631 9.910583 1.611250 0.000002 0.000023 13.197373 +30 0 0 1024 0.072943 3.733805 6.264887 0.000006 0.000071 35.965622 +30 0 1 1024 -0.052506 4.387878 3.479865 0.000009 0.000093 44.349223 +30 1 0 1024 0.008406 5.021810 2.308727 0.000008 0.000085 15.880164 +30 1 1 1024 -0.147555 8.227193 1.637723 0.000002 0.000022 13.866484 +31 1 0 1024 0.000033 9.308573 1.886001 0.000002 0.000017 19.936102 +31 1 1 1024 -0.145700 9.870667 1.610662 0.000001 0.000017 14.105948 +32 1 0 1016 -0.101837 5.457534 2.442544 0.000008 0.000085 16.869970 +32 1 1 1018 -0.100882 6.643766 1.484100 0.000002 0.000027 17.016439 +33 1 0 1019 -0.107913 5.854473 2.030354 0.000008 0.000111 17.656553 +33 1 1 1018 -0.104750 6.514285 1.579995 0.000002 0.000026 18.046024 +34 1 0 1020 -0.108257 6.882782 1.880494 0.000003 0.000038 14.125138 +34 1 1 1018 -0.110099 6.917526 1.892384 0.000002 0.000016 13.833723 +35 1 0 1022 -0.121796 8.334801 1.807161 0.000002 0.000028 14.423969 +35 1 1 1018 -0.107517 7.105231 1.554912 0.000002 0.000022 15.379143 +36 1 0 1021 -0.111978 8.395752 1.902573 0.000002 0.000021 12.684395 +36 1 1 1018 -0.103989 7.755075 1.513899 0.000002 0.000017 15.735186 +37 1 0 1022 -0.119498 8.144121 2.128056 0.000001 0.000016 11.799663 +37 1 1 1018 -0.086472 6.760928 1.440899 0.000002 0.000032 16.451576 +38 1 0 1022 -0.126362 8.366418 1.890943 0.000002 0.000024 15.547028 +38 1 1 1018 -0.099977 7.628377 1.647596 0.000003 0.000027 13.428394 +39 1 0 1022 -0.128867 8.546498 1.952486 0.000002 0.000020 13.761684 +39 1 1 1018 -0.091108 8.340987 1.392215 0.000002 0.000030 15.791367 +41 1 0 858 -0.117675 8.663534 2.024164 0.000002 0.000016 13.786543 +41 1 1 852 -0.083109 7.402558 1.346682 0.000001 0.000017 14.923250 +42 1 0 1020 -0.110949 8.397712 2.080674 0.000002 0.000028 16.436445 +42 1 1 1017 -0.080808 7.596423 1.468899 0.000002 0.000024 14.864047 +44 0 0 1021 0.098696 8.919217 4.402947 0.000003 0.000022 29.326257 +44 0 1 1023 -0.134452 8.670434 2.040941 0.000002 0.000027 25.185552 +54 0 0 1021 0.095352 9.054522 4.727093 0.000004 0.000049 27.342838 +54 0 1 1023 -0.158791 8.836144 2.087028 0.000003 0.000027 22.937738 +68 0 0 912 -0.126928 4.094275 2.984245 0.000000 0.000005 31.298089 +68 0 1 916 0.529440 2.825646 2.494563 0.000008 0.000066 26.030924 +68 1 0 916 0.282512 3.705604 1.662663 0.000004 0.000042 16.517113 +68 1 1 916 -0.382934 2.543668 1.671447 0.000012 0.000142 16.902817 +70 1 0 919 0.273220 2.914037 1.975858 0.000007 0.000072 16.422591 +70 1 1 911 -0.380586 2.538534 2.661676 0.000018 0.000189 21.306309 +71 1 0 927 0.270648 4.495415 1.832304 0.000003 0.000023 15.326381 +71 1 1 911 -0.374629 3.509147 1.960478 0.000007 0.000067 14.023731 +72 0 0 922 -0.139030 4.265365 3.092647 0.000001 0.000008 36.803851 +72 0 1 937 0.507338 4.919313 2.656878 0.000005 0.000087 28.489847 +72 1 0 918 0.273990 4.384191 1.657099 0.000003 0.000025 16.250508 +72 1 1 901 -0.365903 4.259850 1.754957 0.000004 0.000068 12.246038 +73 0 0 909 -0.131142 4.841928 3.053060 0.000001 0.000013 35.932353 +73 0 1 939 0.512391 5.133209 2.178137 0.000004 0.000025 26.796286 +73 1 0 915 0.278769 2.556967 1.691021 0.000006 0.000050 15.318204 +74 0 0 919 -0.135500 5.774937 2.990444 0.000000 0.000004 38.680779 +74 0 1 919 0.517127 8.180404 2.131625 0.000001 0.000012 24.272923 +74 1 0 916 0.282418 1.150973 1.692552 0.000023 0.000215 15.138841 +76 0 0 916 -0.136047 5.623431 3.027347 0.000001 0.000015 40.599860 +76 0 1 913 0.537758 7.682777 2.005741 0.000001 0.000008 23.670972 +86 0 0 925 -0.141096 6.131959 3.056302 0.000001 0.000009 37.086914 +86 0 1 929 0.512093 8.391079 2.034693 0.000001 0.000008 26.888878 diff --git a/dave/ptinfo.csv b/dave/ptinfo.csv new file mode 100644 index 0000000..2dbef65 --- /dev/null +++ b/dave/ptinfo.csv @@ -0,0 +1,88 @@ +0 0 0 1024 0.054304 8.087056 7.006970 0.000005 0.000095 49.911564 +0 0 1 1024 -0.091073 7.633667 2.124995 0.000002 0.000032 28.309638 +4 0 0 1024 0.046903 7.663818 9.134277 0.000014 0.000274 87.982354 +4 0 1 1024 -0.086459 8.770345 2.726730 0.000011 0.000192 29.506709 +5 0 0 1024 0.047980 4.033020 8.087671 0.000017 0.000218 50.499310 +5 0 1 1024 -0.077373 7.318115 2.557700 0.000005 0.000082 24.065775 +6 0 0 1024 0.062184 9.521423 7.429031 0.000003 0.000035 38.676732 +6 0 1 1024 -0.073973 9.523905 1.995981 0.000002 0.000029 26.113657 +7 0 0 1024 0.056254 9.999064 7.497290 0.000003 0.000044 38.734072 +7 0 1 1024 -0.079104 9.753560 2.103774 0.000004 0.000051 33.619688 +8 1 0 1024 -0.006291 9.665955 1.987640 0.000002 0.000028 15.453922 +8 1 1 1024 -0.117330 10.177124 1.600708 0.000001 0.000018 11.038096 +9 0 0 1025 0.062143 8.118984 6.820550 0.000004 0.000055 40.521475 +9 0 1 1023 -0.085365 8.509694 1.896965 0.000003 0.000091 21719098.365862 +9 1 0 1024 0.000557 6.315043 1.998499 0.000010 0.000087 21.686142 +9 1 1 1024 -0.113388 7.437968 1.836344 0.000002 0.000035 18.467548 +10 1 0 1024 -0.009943 9.343363 1.995316 0.000002 0.000031 17.584078 +10 1 1 1024 -0.124325 9.785502 1.689753 0.000002 0.000038 11.692163 +11 1 1 1024 -0.118290 6.393616 2.064949 0.000007 0.000127 19.804200 +12 1 0 1024 -0.014712 6.424642 2.678035 0.000011 0.000116 31.494265 +12 1 1 1024 -0.109233 7.731120 2.279953 0.000007 0.000190 18.323990 +15 0 0 1024 0.060565 6.858704 7.184426 0.000008 0.000088 44.052520 +15 0 1 1024 -0.094258 6.385498 2.018832 0.000010 0.000091 29.446135 +15 1 0 1024 -0.006425 3.219747 2.549749 0.000022 0.000239 26.656846 +15 1 1 1024 -0.106455 6.234049 1.960842 0.000006 0.000076 13.899017 +17 0 0 1024 0.066623 8.772827 6.714717 0.000003 0.000034 33.014899 +17 0 1 1024 -0.060226 8.462301 2.015937 0.000002 0.000022 32.443223 +23 1 1 1024 -0.155699 4.259481 2.133325 0.000009 0.000119 14.051344 +24 1 0 1024 0.004956 2.748250 3.060253 0.000032 0.000273 24.108629 +24 1 1 1024 -0.156870 7.030355 1.539771 0.000003 0.000047 11.937263 +27 1 0 1024 -0.004080 5.997660 2.117311 0.000010 0.000096 25.358188 +27 1 1 1024 -0.157007 8.123576 1.820049 0.000003 0.000063 11.321934 +28 1 0 1024 -0.007485 3.633423 2.815398 0.000022 0.000202 29.154675 +28 1 1 1024 -0.148765 6.027649 1.957405 0.000006 0.000081 13.776313 +29 1 0 1024 -0.006364 9.275757 2.122339 0.000002 0.000026 16.821591 +29 1 1 1024 -0.140631 9.910583 1.611250 0.000002 0.000023 13.197373 +30 0 0 1024 0.072943 3.733805 6.264887 0.000006 0.000071 35.965622 +30 0 1 1024 -0.052506 4.387878 3.479865 0.000009 0.000093 44.349223 +30 1 0 1024 0.008406 5.021810 2.308727 0.000008 0.000085 15.880164 +30 1 1 1024 -0.147555 8.227193 1.637723 0.000002 0.000022 13.866484 +31 1 0 1024 0.000033 9.308573 1.886001 0.000002 0.000017 19.936102 +31 1 1 1024 -0.145700 9.870667 1.610662 0.000001 0.000017 14.105948 +32 1 0 1016 -0.101837 5.457534 2.442544 0.000008 0.000085 16.869970 +32 1 1 1018 -0.100882 6.643766 1.484100 0.000002 0.000027 17.016439 +33 1 0 1019 -0.107913 5.854473 2.030354 0.000008 0.000111 17.656553 +33 1 1 1018 -0.104750 6.514285 1.579995 0.000002 0.000026 18.046024 +34 1 0 1020 -0.108257 6.882782 1.880494 0.000003 0.000038 14.125138 +34 1 1 1018 -0.110099 6.917526 1.892384 0.000002 0.000016 13.833723 +35 1 0 1022 -0.121796 8.334801 1.807161 0.000002 0.000028 14.423969 +35 1 1 1018 -0.107517 7.105231 1.554912 0.000002 0.000022 15.379143 +36 1 0 1021 -0.111978 8.395752 1.902573 0.000002 0.000021 12.684395 +36 1 1 1018 -0.103989 7.755075 1.513899 0.000002 0.000017 15.735186 +37 1 0 1022 -0.119498 8.144121 2.128056 0.000001 0.000016 11.799663 +37 1 1 1018 -0.086472 6.760928 1.440899 0.000002 0.000032 16.451576 +38 1 0 1022 -0.126362 8.366418 1.890943 0.000002 0.000024 15.547028 +38 1 1 1018 -0.099977 7.628377 1.647596 0.000003 0.000027 13.428394 +39 1 0 1022 -0.128867 8.546498 1.952486 0.000002 0.000020 13.761684 +39 1 1 1018 -0.091108 8.340987 1.392215 0.000002 0.000030 15.791367 +41 1 0 858 -0.117675 8.663534 2.024164 0.000002 0.000016 13.786543 +41 1 1 852 -0.083109 7.402558 1.346682 0.000001 0.000017 14.923250 +42 1 0 1020 -0.110949 8.397712 2.080674 0.000002 0.000028 16.436445 +42 1 1 1017 -0.080808 7.596423 1.468899 0.000002 0.000024 14.864047 +44 0 0 1021 0.098696 8.919217 4.402947 0.000003 0.000022 29.326257 +44 0 1 1023 -0.134452 8.670434 2.040941 0.000002 0.000027 25.185552 +54 0 0 1021 0.095352 9.054522 4.727093 0.000004 0.000049 27.342838 +54 0 1 1023 -0.158791 8.836144 2.087028 0.000003 0.000027 22.937738 +68 0 0 912 -0.126928 4.094275 2.984245 0.000000 0.000005 31.298089 +68 0 1 916 0.529440 2.825646 2.494563 0.000008 0.000066 26.030924 +68 1 0 916 0.282512 3.705604 1.662663 0.000004 0.000042 16.517113 +68 1 1 916 -0.382934 2.543668 1.671447 0.000012 0.000142 16.902817 +70 1 0 919 0.273220 2.914037 1.975858 0.000007 0.000072 16.422591 +70 1 1 911 -0.380586 2.538534 2.661676 0.000018 0.000189 21.306309 +71 1 0 927 0.270648 4.495415 1.832304 0.000003 0.000023 15.326381 +71 1 1 911 -0.374629 3.509147 1.960478 0.000007 0.000067 14.023731 +72 0 0 922 -0.139030 4.265365 3.092647 0.000001 0.000008 36.803851 +72 0 1 937 0.507338 4.919313 2.656878 0.000005 0.000087 28.489847 +72 1 0 918 0.273990 4.384191 1.657099 0.000003 0.000025 16.250508 +72 1 1 901 -0.365903 4.259850 1.754957 0.000004 0.000068 12.246038 +73 0 0 909 -0.131142 4.841928 3.053060 0.000001 0.000013 35.932353 +73 0 1 939 0.512391 5.133209 2.178137 0.000004 0.000025 26.796286 +73 1 0 915 0.278769 2.556967 1.691021 0.000006 0.000050 15.318204 +74 0 0 919 -0.135500 5.774937 2.990444 0.000000 0.000004 38.680779 +74 0 1 919 0.517127 8.180404 2.131625 0.000001 0.000012 24.272923 +74 1 0 916 0.282418 1.150973 1.692552 0.000023 0.000215 15.138841 +76 0 0 916 -0.136047 5.623431 3.027347 0.000001 0.000015 40.599860 +76 0 1 913 0.537758 7.682777 2.005741 0.000001 0.000008 23.670972 +86 0 0 925 -0.141096 6.131959 3.056302 0.000001 0.000009 37.086914 +86 0 1 929 0.512093 8.391079 2.034693 0.000001 0.000008 26.888878 |