diff options
Diffstat (limited to 'dave')
-rwxr-xr-x | dave/AffineSolve | bin | 65416 -> 65424 bytes | |||
-rw-r--r-- | dave/AffineSolve.c | 2 | ||||
-rw-r--r-- | dave/dclapack.h | 225 | ||||
-rw-r--r-- | dave/ptinfo.csv | 157 |
4 files changed, 70 insertions, 314 deletions
diff --git a/dave/AffineSolve b/dave/AffineSolve Binary files differindex cc4d26e..98a9590 100755 --- a/dave/AffineSolve +++ b/dave/AffineSolve diff --git a/dave/AffineSolve.c b/dave/AffineSolve.c index 1c873d9..4fba56b 100644 --- a/dave/AffineSolve.c +++ b/dave/AffineSolve.c @@ -11,7 +11,7 @@ #include <math.h> #include "dclapack.h" #include <linmath.h> -#define LH_ID 1 +#define LH_ID 0 #define NUM_HMD 32 #define MAX_POINTS 128 diff --git a/dave/dclapack.h b/dave/dclapack.h deleted file mode 100644 index 4e209d3..0000000 --- a/dave/dclapack.h +++ /dev/null @@ -1,225 +0,0 @@ -#ifndef __DCLAPACK_H__ -#define __DCLAPACK_H__ - -#ifndef ORDER -#define ORDER 50 -#endif - -#ifndef FLOAT -#define FLOAT float -#endif - -#include<stdio.h> - -#define _ABS(a) ( (a)<=0 ? 0-(a) : (a) ) - -/* - * Prints a matrix A (n by m) - */ -#define PRINT(A,n,m) { \ - int i,j; \ - printf(#A "\n"); \ - for (i=0; i<n; i++) { \ - for (j=0; j<m; j++) { \ - printf("%4.3f\t", A[i][j]); \ - } \ - printf("\n"); \ - } \ - printf("\n"); \ -} - -/* - * Returns the identity matrix - */ -#define IDENTITY(I,n) { \ - int i,j; \ - for (i=0; i<n; i++) { \ - for (j=0; j<i; j++) { I[i][j]=0.0f; } \ - I[i][i] = 1.0f; \ - for (j=i+1; j<n; j++) { I[i][j]=0.0f; } \ - } \ -} - -/* - * B = Transpose(A) - * A is (n by m) - * B is (m by n) - */ -#define TRANSP(A,B,n,m) { \ - int i,j; \ - for (i=0; i<n; i++) { \ - for (j=0; j<m; j++) { \ - B[j][i] = A[i][j]; \ - } \ - } \ -} - -/* - * Calculate L,U of a matrix A with pivot table - */ -#define LU(A,L,U,Piv,n) { \ - int i,j,k,_tempi; float _tempf; \ - for (i=0; i<n; i++) { Piv[i]=i; } \ - for (i=0; i<n; i++) { \ - for (j=0; j<n; j++) { \ - U[i][j] = A[i][j]; \ - } \ - } \ - IDENTITY(L,n); \ - \ - for (i=0; i<n-1; i++) { \ - \ - int max=i; \ - for (j=i+1; j<n; j++) { \ - if (_ABS(U[j][i]) > _ABS(U[max][i])) { max = j; } \ - } \ - _tempi=Piv[i]; Piv[i]=Piv[max]; Piv[max]=_tempi; \ - for (k=i; k<n; k++) { \ - _tempf=U[i][k]; U[i][k]=U[max][k]; U[max][k]=_tempf; \ - } \ - for (k=0; k<i; k++) { \ - _tempf=L[i][k]; L[i][k]=L[max][k]; L[max][k]=_tempf; \ - } \ - \ - FLOAT invDiag = 1.0 / U[i][i]; \ - for (j=i+1; j<n; j++) { \ - FLOAT scale = U[j][i] * invDiag; \ - U[j][i] = 0.0; \ - for (k=i+1; k<n; k++) { U[j][k] -= U[i][k]*scale; } \ - L[j][i] = scale; \ - } \ - } \ -} - -/* - * Pivots a matrix to a different matrix - * B = Pivot(A) given table 'Piv' - * A and B are (n by m) - */ -#define PIVOT(A,B,Piv,n,m) { \ - int i,j; \ - for (j=0; j<n; j++) { \ - for (i=0; i<m; i++) { \ - B[j][i] = A[Piv[j]][i]; \ - } \ - } \ -} - -/* - * Solve LX=B for matrix X and B - * L is n by n (lower triangular) - * B is n by m - */ -#define L_SUB(L,X,B,n,m) { \ - int i,j,k; \ - for (i=0; i<m; i++) { \ - for (j=0; j<n; j++) { \ - float sum=0.0; \ - for (k=0; k<j; k++) { sum += L[j][k]*X[k][i]; } \ - X[j][i] = (B[j][i] - sum) / L[j][j]; \ - } \ - } \ -} - -/* - * Solve UX=B for matrix X and B - * U is n by n (upper triangular) - * B is n by m - */ -#define U_SUB(U,X,B,n,m) { \ - int i,j,k; \ - for (i=0; i<m; i++) { \ - for (j=n-1; j>=0; j--) { \ - float sum=0.0; \ - for (k=n-1; k>j; k--) { sum += U[j][k]*X[k][i]; } \ - X[j][i] = (B[j][i] - sum) / U[j][j]; \ - } \ - } \ -} - -/* - * Inverts a matrix X (n by n) using the method of LU decomposition - */ -#define INV(A,Ainv,n) { \ - FLOAT Ipiv[ORDER][ORDER]; \ - FLOAT L[ORDER][ORDER]; \ - FLOAT U[ORDER][ORDER]; \ - FLOAT I[ORDER][ORDER]; \ - FLOAT C[ORDER][ORDER]; \ - int Piv[ORDER]; \ - IDENTITY(I,n); \ - LU(A,L,U,Piv,n); \ - PIVOT(I,Ipiv,Piv,n,n); \ - L_SUB(L,C,Ipiv,n,n); \ - U_SUB(U,Ainv,C,n,n); \ -} - -/* -PRINT(A,n,n); \ -PRINT(L,n,n); \ -PRINT(U,n,n); \ -MUL(L,U,LU,n,n,n);\ -PRINT(LU,n,n);\ -PRINT(C,n,n); \ -PRINT(Ainv,n,n); \ -*/ - -/* - * Matrix Multiply C = A * B - * A (n by m) - * B (m by p) - * C (n by p) - */ -#define MUL(A,B,C,n,m,p) { \ - int i,j,k; \ - for (i=0; i<n; i++) { \ - for (j=0; j<p; j++) { \ - C[i][j] = 0.0f; \ - for (k=0; k<m; k++) { \ - C[i][j] += A[i][k] * B[k][j]; \ - } \ - } \ - } \ -} - -/* - * Matrix Multiply D = A * B + C - * A (n by m) - * B (m by p) - * C (n by p) - * D (n by p) - */ -#define MULADD(A,B,C,D,n,m,p) { \ - int i,j,k; \ - for (i=0; i<n; i++) { \ - for (j=0; j<p; j++) { \ - D[i][j] = C[i][j]; \ - for (k=0; k<m; k++) { \ - D[i][j] += A[i][k] * B[k][j]; \ - } \ - } \ - } \ -} - -/* - * Matrix Multiply D = alpha * A * B + beta * C - * A (n by m) - * B (m by p) - * C (n by p) - * D (n by p) - */ -#define GMULADD(A,B,C,D,alpha,beta,n,m,p) { \ - int i,j,k; \ - float sum; \ - for (i=0; i<n; i++) { \ - for (j=0; j<p; j++) { \ - sum = 0.0f; \ - for (k=0; k<m; k++) { \ - sum += A[i][k] * B[k][j]; \ - } \ - D[i][j] = alpha * sum + beta * C[i][j]; \ - } \ - } \ -} - -#endif diff --git a/dave/ptinfo.csv b/dave/ptinfo.csv index 2dbef65..f4c5ea9 100644 --- a/dave/ptinfo.csv +++ b/dave/ptinfo.csv @@ -1,88 +1,69 @@ -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 +0 0 0 1024 0.041750 3.356344 1.828998 0.000002 0.000021 49.839622 +0 0 1 1024 0.109967 4.153035 1.883659 0.000002 0.000017 18.750043 +0 1 1 838 -0.207362 0.514121 2.011177 0.000005 0.000146 20.057562 +4 1 0 1024 0.131400 2.764364 2.038156 0.000003 0.000066 21.627449 +4 1 1 1024 -0.201195 2.843648 1.844738 0.000003 0.000079 20.542771 +6 0 0 1024 0.023004 4.443075 1.777077 0.000001 0.000026 47.120957 +6 0 1 1024 0.113830 5.225403 1.653571 0.000001 0.000022 20.887187 +6 1 0 1024 0.146652 2.742981 2.012739 0.000001 0.000012 21.375524 +6 1 1 1024 -0.211721 2.358521 1.862361 0.000001 0.000015 20.053232 +7 1 0 1024 0.140333 3.198140 1.997439 0.000001 0.000018 18.166517 +7 1 1 1024 -0.208156 2.908244 1.892947 0.000001 0.000013 17.755360 +8 0 0 1024 0.036998 5.118429 1.829670 0.000001 0.000012 39.822422 +8 0 1 1024 0.126802 6.585714 1.734635 0.000002 0.000021 20.020662 +9 0 0 1024 0.035700 4.496134 1.846496 0.000001 0.000012 45.663926 +9 0 1 1024 0.115987 5.774577 1.682445 0.000002 0.000027 19.873340 +10 0 0 1024 0.032992 4.960815 1.840030 0.000002 0.000034 49.867023 +10 0 1 1024 0.134889 6.200765 1.801494 0.000004 0.000056 19.108826 +15 0 0 1024 0.046206 3.663981 1.957251 0.000001 0.000022 51.132112 +15 0 1 1024 0.119199 4.899963 1.761027 0.000002 0.000060 24.645105 +16 1 0 1024 0.167758 2.818949 2.055596 0.000001 0.000010 19.765362 +16 1 1 1024 -0.210253 2.650065 1.684485 0.000001 0.000010 20.046716 +17 0 0 1024 0.008123 4.042155 1.907654 0.000001 0.000016 44.942365 +17 0 1 1024 0.119126 5.346334 1.616305 0.000002 0.000038 23.873406 +17 1 0 1024 0.160551 2.538859 2.078290 0.000001 0.000011 18.503004 +17 1 1 1024 -0.212818 1.963074 1.653989 0.000001 0.000010 20.818517 +18 1 0 1024 0.169252 1.834696 2.095149 0.000003 0.000073 20.457114 +18 1 1 1024 -0.202781 1.857198 1.804126 0.000003 0.000083 25.433970 +19 1 0 1024 0.177362 2.038411 2.536636 0.000008 0.000194 22.828018 +19 1 1 1024 -0.204779 2.259420 2.005833 0.000009 0.000221 27.081790 +23 0 0 1025 -0.010332 3.968150 1.862948 0.000004 0.000068 45.777934 +23 0 1 1023 0.128696 6.093495 1.773672 0.000004 0.004550 19300251.477888 +24 0 0 993 -0.006030 4.369734 1.921640 0.000005 0.000129 48.222013 +24 0 1 992 0.138082 6.460706 1.786190 0.000005 0.000155 22.781613 +27 0 1 1024 0.147109 2.936829 2.604852 0.000022 0.000474 28.721504 +29 0 0 1024 0.016187 5.032145 1.921979 0.000003 0.000047 47.194243 +29 0 1 1024 0.140979 6.596395 1.815706 0.000005 0.000090 24.794637 +30 0 0 1024 0.000282 4.738342 1.756708 0.000001 0.000040 47.044401 +30 0 1 1024 0.128872 6.677734 1.748380 0.000002 0.000039 19.083389 +31 0 0 1024 0.007667 5.235433 1.898046 0.000001 0.000019 47.785930 +31 0 1 1024 0.137390 6.697835 1.762878 0.000002 0.000024 20.161993 +32 0 0 1019 -0.221131 4.109073 1.687081 0.000001 0.000008 39.847161 +32 0 1 1022 0.145009 4.683627 1.672801 0.000001 0.000004 18.169256 +33 0 0 1020 -0.217002 4.494730 1.552900 0.000001 0.000006 38.840936 +33 0 1 1021 0.150320 4.659607 1.476978 0.000001 0.000006 20.903208 +34 0 0 1019 -0.220660 4.394218 1.499063 0.000001 0.000007 36.572525 +34 0 1 1020 0.155998 4.846773 1.572007 0.000001 0.000008 20.786276 +35 0 0 1020 -0.207471 4.282680 1.416071 0.000000 0.000006 37.591605 +35 0 1 1020 0.158539 3.864747 1.512890 0.000001 0.000005 19.809991 +36 0 0 1020 -0.213648 1.838133 1.606175 0.000001 0.000014 42.311387 +36 0 1 1020 0.151255 1.933946 1.611633 0.000001 0.000010 20.868507 +36 1 0 1017 0.357442 1.409087 2.339893 0.000001 0.000009 25.252360 +37 0 0 1019 -0.199851 4.357601 1.549965 0.000001 0.000006 41.234504 +37 0 1 1022 0.139227 4.483753 1.584095 0.000001 0.000008 19.873120 +38 0 0 1019 -0.200025 2.547739 1.691084 0.000001 0.000006 40.679205 +38 0 1 1020 0.153593 3.013930 1.747689 0.000001 0.000006 18.072496 +39 0 1 1022 0.147554 2.405292 1.636333 0.000001 0.000009 16.334833 +40 0 1 1022 0.134857 1.219056 1.504621 0.000004 0.000039 18.954468 +40 1 0 1020 0.341554 2.105331 2.496244 0.000000 0.000007 25.552542 +40 1 1 1020 -0.141616 2.311785 2.012586 0.000001 0.000007 22.408698 +41 1 0 1020 0.344930 2.430515 2.448566 0.000000 0.000003 27.764761 +41 1 1 1021 -0.149021 2.758386 1.892542 0.000000 0.000006 25.399428 +42 0 0 1020 -0.205661 1.525102 1.704018 0.000002 0.000045 38.874329 +42 0 1 1022 0.131522 1.181813 1.789474 0.000003 0.000023 19.790870 +42 1 0 1018 0.349915 3.181974 2.424394 0.000000 0.000005 27.068381 +42 1 1 1021 -0.147299 2.959639 1.892314 0.000000 0.000004 23.454554 +54 1 0 1019 0.346022 2.557082 2.295552 0.000000 0.000006 25.170448 +54 1 1 1020 -0.141488 2.866462 2.025173 0.000001 0.000006 25.737504 +55 1 0 1018 0.350800 1.716110 2.326650 0.000001 0.000013 26.234609 +55 1 1 1021 -0.145191 0.853330 1.730182 0.000001 0.000021 26.866658 |