diff options
Diffstat (limited to 'charf.c')
| -rw-r--r-- | charf.c | 32 |
1 files changed, 21 insertions, 11 deletions
@@ -68,8 +68,8 @@ void differentiate(VALUETYPE* f, VALUETYPE* df, int D, int k){ VALUETYPE integratep(VALUETYPE* f, EXPTYPE p, int D){ VALUETYPE integralp = int_to_valuetype(0); for(int i=0; i<D; i++){ - VALUETYPE padd = power(absolute(f[i]),p); - integralp = sum(integralp,padd); + if(exptype_is_infinite(p)) integralp = maximum(integralp,absolute(f[i])); + else integralp = sum(integralp,power(absolute(f[i]),p)); } return integralp; } @@ -172,20 +172,26 @@ void format_result(char* s, int index, int k, EXPTYPE p, VALUETYPE r, int format if(format == FORMAT_TEXT){ strcpy(s,"f: "); int l = 3; - for(int i=0; i<d; i++) l += sprintf(s+l,"%2.0f ",valuetype_to_double(f[i])); - for(int i=d; i<N; i++) l += sprintf(s+l," "); + for(int i=0; i<d; i++){ + char v[8]; + valuetype_to_string(v,f[i]); + l += sprintf(s+l,"%s ",v); + } + for(int i=d; i<N; i++) l += sprintf(s+l," "); + char e[16]; char rts[128]; + exptype_to_string(e,p); root_to_string(rts,r,p); - l += sprintf(s+l,"|f^(%d)|_1/%2.1f: %s",k,exptype_to_double(p),rts); + l += sprintf(s+l,"|f^(%d)|_%s: %s",k,e,rts); } else if(format == FORMAT_LATEX){ int l = 0; char v[128]; root_to_latex(v,r,p); - l += sprintf(s+l,"$%d$ & %s",k,v); + l += sprintf(s+l,"$%d$ & $%s$",k,v); for(int i=0; i<d; i++){ valuetype_to_latex(v,f[i]); - l += sprintf(s+l,"& %s ",v); + l += sprintf(s+l,"& $%s$ ",v); } for(int i=d; i<N; i++) l += sprintf(s+l,"& "); } @@ -270,13 +276,15 @@ void format_results(char* text, EXPTYPE exponents[P], VALUETYPE ratios[K+1][P], char beginningp[P][1024]; char endp[P][1024]; char newline[4]; + char e[8]; if(format == FORMAT_TEXT){ strcpy(beginning,"Current records:"); strcpy(end,""); for(int p=0; p<P; p++){ - sprintf(beginningp[p],"exponent %2.1f:",exptype_to_double(exponents[p])); + exptype_to_string(e,exponents[p]); + sprintf(beginningp[p],"exponent %s:",e); strcpy(endp[p],""); } @@ -295,8 +303,9 @@ void format_results(char* text, EXPTYPE exponents[P], VALUETYPE ratios[K+1][P], for(int n=1; n<N; n++) strcat(f,"& "); strcat(f,"\\\\\n\\hline"); for(int p=0; p<P; p++){ - sprintf(beginningp[p],"$p=%1.0f$:\n\n\\begin{tabular}%s\n%s",exptype_to_double(exponents[p]),h,f); - strcpy(endp[p],"\\end{tabular}\n"); + exptype_to_latex(e,exponents[p]); + sprintf(beginningp[p],"\\begin{table}\n\\begin{tabular}%s\n%s",h,f); + sprintf(endp[p],"\\end{tabular}\n\\caption{$p=%s$:}\n\\end{table}",e); } strcpy(newline,"\\\\"); } @@ -360,7 +369,8 @@ int main() { int num_exponents[K+1]; EXPTYPE exponents[P]; exponents[0] = int_to_exptype(1); - exponents[1] = int_to_exptype(2); + //exponents[1] = int_to_exptype(2); + exponents[1] = infinity_to_exptype(); pthread_t threads[NUM_THREADS]; Args args[NUM_THREADS]; |
