here is the first stab at mul_basecase. It's basically just an inlined version of
mpn_zero(xp,xn); rp[xn]=mpn_addmul(rp,xp,xn,yp[0]); rp++;yp++yn--; while(yn>=1) {rp[xn]=mpn_addmul(rp,xp,xn,yp[0]); rp++;yp++,yn--;} for the timings in the result file attatched , I skipped the mpn_zero, so when i put the proper mpn_mul_1 bit in , these are the timing we should get. As the unrolled loop is 4-way , there's a bit of duplication which can be absorbed into a few macros. The straight substitution of the above c-algorithm is not going to get any faster. We could though trim a few cycles of the small sizes , and perhaps do the 1-4 limbs cases separatly Possibly a mpn_addmul_2 may help , and perhaps.... --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "mpir-devel" group. To post to this group, send email to mpir-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/mpir-devel?hl=en -~----------~----~----~----~------~----~------~--~---
# rdi rsi rdx rcx r8 #mul_basecase( rp=rdi up=rsi un vp=r13 vn=r8 ) .global jay jay: cmp $1,%rdx jne skip mov (%rsi),%rax mulq (%rcx) mov %rax,(%rdi) mov %rdx,8(%rdi) ret skip: push %rbx push %r12 push %r13 push %r14 push %r15 mov %rdx,%r14 mov %rdx,%r15 sub $5,%r14 and $3,%r15 neg %r14 lea -40(%rdi,%rdx,8),%rdi lea -40(%rsi,%rdx,8),%rsi mov %rcx,%r13 mov (%r13),%rcx mov %r14,%rbx # mpn_zero(rdi,un) call theaddmul lea 8(%rdi),%rdi lea 8(%r13),%r13 dec %r8 jz next4 cmp $0,%r15 jne case1 # r15 is 0 , so bx would be 1 , so left is 2 loop1: mov (%r13),%rcx mov %r14,%rbx #call theaddmul2 mov (%rsi,%rbx,8),%rax mul %rcx mov %rax,%r9 mov %rdx,%r10 mov 8(%rsi,%rbx,8),%rax cmp $0,%rbx jge next22 .align 16 loop22: mov $0,%r11d mul %rcx add %r9,(%rdi,%rbx,8) adc %rax,%r10 adc %rdx,%r11 mov 16(%rsi,%rbx,8),%rax mul %rcx add %r10,8(%rdi,%rbx,8) adc %rax,%r11 mov $0,%r12d adc %rdx,%r12 mov 24(%rsi,%rbx,8),%rax mov $0,%r9d mov $0,%r10d mul %rcx add %r11,16(%rdi,%rbx,8) adc %rax,%r12 adc %rdx,%r9 mov 32(%rsi,%rbx,8),%rax mul %rcx add %r12,24(%rdi,%rbx,8) adc %rax,%r9 adc %rdx,%r10 add $4,%rbx mov 8(%rsi,%rbx,8),%rax jnc loop22 next22: mov $0,%r11d mul %rcx add %r9,(%rdi,%rbx,8) adc %rax,%r10 adc %rdx,%r11 mov 16(%rsi,%rbx,8),%rax mul %rcx add %r10,8(%rdi,%rbx,8) adc %rax,%r11 mov $0,%r12d adc %rdx,%r12 mov 24(%rsi,%rbx,8),%rax mov $0,%r9d mul %rcx add %r11,16(%rdi,%rbx,8) adc %rax,%r12 adc %rdx,%r9 add %r12,24(%rdi,%rbx,8) adc $0,%r9 mov %r9,32(%rdi,%rbx,8) lea 8(%rdi),%rdi lea 8(%r13),%r13 dec %r8 jnz loop1 next4: pop %r15 pop %r14 pop %r13 pop %r12 pop %rbx ret case1: cmp $1,%r15 jne case2 # r15 is 1 , so bx would be 0 , so left is 3 loop2: mov (%r13),%rcx mov %r14,%rbx #call theaddmul3 mov (%rsi,%rbx,8),%rax mul %rcx mov %rax,%r9 mov %rdx,%r10 mov 8(%rsi,%rbx,8),%rax cmp $0,%rbx jge next33 .align 16 loop33: mov $0,%r11d mul %rcx add %r9,(%rdi,%rbx,8) adc %rax,%r10 adc %rdx,%r11 mov 16(%rsi,%rbx,8),%rax mul %rcx add %r10,8(%rdi,%rbx,8) adc %rax,%r11 mov $0,%r12d adc %rdx,%r12 mov 24(%rsi,%rbx,8),%rax mov $0,%r9d mov $0,%r10d mul %rcx add %r11,16(%rdi,%rbx,8) adc %rax,%r12 adc %rdx,%r9 mov 32(%rsi,%rbx,8),%rax mul %rcx add %r12,24(%rdi,%rbx,8) adc %rax,%r9 adc %rdx,%r10 add $4,%rbx mov 8(%rsi,%rbx,8),%rax jnc loop33 next33: mov $0,%r11d mul %rcx add %r9,(%rdi,%rbx,8) adc %rax,%r10 adc %rdx,%r11 mov 16(%rsi,%rbx,8),%rax mul %rcx add %r10,8(%rdi,%rbx,8) adc %rax,%r11 mov $0,%r12d adc %rdx,%r12 mov 24(%rsi,%rbx,8),%rax mov $0,%r9d mov $0,%r10d mul %rcx add %r11,16(%rdi,%rbx,8) adc %rax,%r12 adc %rdx,%r9 mov 32(%rsi,%rbx,8),%rax mul %rcx add %r12,24(%rdi,%rbx,8) adc %rax,%r9 adc %rdx,%r10 add %r9,32(%rdi,%rbx,8) adc $0,%r10 mov %r10,40(%rdi,%rbx,8) lea 8(%rdi),%rdi lea 8(%r13),%r13 dec %r8 jnz loop2 pop %r15 pop %r14 pop %r13 pop %r12 pop %rbx ret case2: cmp $2,%r15 jne case3 # r15 is 2 , so bx would be 3 , so left is 0 loop3: mov (%r13),%rcx mov %r14,%rbx #call theaddmul0 mov (%rsi,%rbx,8),%rax mul %rcx mov %rax,%r9 mov %rdx,%r10 mov 8(%rsi,%rbx,8),%rax cmp $0,%rbx jge next00 .align 16 loop00: mov $0,%r11d mul %rcx add %r9,(%rdi,%rbx,8) adc %rax,%r10 adc %rdx,%r11 mov 16(%rsi,%rbx,8),%rax mul %rcx add %r10,8(%rdi,%rbx,8) adc %rax,%r11 mov $0,%r12d adc %rdx,%r12 mov 24(%rsi,%rbx,8),%rax mov $0,%r9d mov $0,%r10d mul %rcx add %r11,16(%rdi,%rbx,8) adc %rax,%r12 adc %rdx,%r9 mov 32(%rsi,%rbx,8),%rax mul %rcx add %r12,24(%rdi,%rbx,8) adc %rax,%r9 adc %rdx,%r10 add $4,%rbx mov 8(%rsi,%rbx,8),%rax jnc loop00 next00: mov $0,%r11d mul %rcx add %r9,(%rdi,%rbx,8) adc %rax,%r10 adc %rdx,%r11 add %r10,8(%rdi,%rbx,8) adc $0,%r11 mov %r11,16(%rdi,%rbx,8) lea 8(%rdi),%rdi lea 8(%r13),%r13 dec %r8 jnz loop3 pop %r15 pop %r14 pop %r13 pop %r12 pop %rbx ret case3: # r15 is 3 , so bx would be 2 , so left is 1 loop4: mov (%r13),%rcx mov %r14,%rbx #call theaddmul1 mov (%rsi,%rbx,8),%rax mul %rcx mov %rax,%r9 mov %rdx,%r10 mov 8(%rsi,%rbx,8),%rax cmp $0,%rbx jge next11 .align 16 loop11: mov $0,%r11d mul %rcx add %r9,(%rdi,%rbx,8) adc %rax,%r10 adc %rdx,%r11 mov 16(%rsi,%rbx,8),%rax mul %rcx add %r10,8(%rdi,%rbx,8) adc %rax,%r11 mov $0,%r12d adc %rdx,%r12 mov 24(%rsi,%rbx,8),%rax mov $0,%r9d mov $0,%r10d mul %rcx add %r11,16(%rdi,%rbx,8) adc %rax,%r12 adc %rdx,%r9 mov 32(%rsi,%rbx,8),%rax mul %rcx add %r12,24(%rdi,%rbx,8) adc %rax,%r9 adc %rdx,%r10 add $4,%rbx mov 8(%rsi,%rbx,8),%rax jnc loop11 next11: mov $0,%r11d mul %rcx add %r9,(%rdi,%rbx,8) adc %rax,%r10 adc %rdx,%r11 mov 16(%rsi,%rbx,8),%rax mul %rcx add %r10,8(%rdi,%rbx,8) adc %rax,%r11 mov $0,%r12d adc %rdx,%r12 add %r11,16(%rdi,%rbx,8) adc $0,%r12 mov %r12,24(%rdi,%rbx,8) lea 8(%rdi),%rdi lea 8(%r13),%r13 dec %r8 jnz loop4 pop %r15 pop %r14 pop %r13 pop %r12 pop %rbx ret // addmul_1 which stores top limb rather than return // uses bx,r12 but doesn't pop/push it // n>=2 theaddmul: mov (%rsi,%rbx,8),%rax mul %rcx mov %rax,%r9 mov %rdx,%r10 mov 8(%rsi,%rbx,8),%rax cmp $0,%rbx jge next .align 16 loop: mov $0,%r11d mul %rcx add %r9,(%rdi,%rbx,8) adc %rax,%r10 adc %rdx,%r11 mov 16(%rsi,%rbx,8),%rax mul %rcx add %r10,8(%rdi,%rbx,8) adc %rax,%r11 mov $0,%r12d adc %rdx,%r12 mov 24(%rsi,%rbx,8),%rax mov $0,%r9d mov $0,%r10d mul %rcx add %r11,16(%rdi,%rbx,8) adc %rax,%r12 adc %rdx,%r9 mov 32(%rsi,%rbx,8),%rax mul %rcx add %r12,24(%rdi,%rbx,8) adc %rax,%r9 adc %rdx,%r10 add $4,%rbx mov 8(%rsi,%rbx,8),%rax jnc loop next: cmp $0,%rbx jne next1 #if we could do another 4 loads we would loop it #here is 3 loads ie if bx=0 mov $0,%r11d mul %rcx add %r9,(%rdi,%rbx,8) adc %rax,%r10 adc %rdx,%r11 mov 16(%rsi,%rbx,8),%rax mul %rcx add %r10,8(%rdi,%rbx,8) adc %rax,%r11 mov $0,%r12d adc %rdx,%r12 mov 24(%rsi,%rbx,8),%rax mov $0,%r9d mov $0,%r10d mul %rcx add %r11,16(%rdi,%rbx,8) adc %rax,%r12 adc %rdx,%r9 mov 32(%rsi,%rbx,8),%rax mul %rcx add %r12,24(%rdi,%rbx,8) adc %rax,%r9 adc %rdx,%r10 add %r9,32(%rdi,%rbx,8) adc $0,%r10 mov %r10,40(%rdi,%rbx,8) ret next1: cmp $1,%rbx jne next2 #here is 2 loads ie if bx=1 mov $0,%r11d mul %rcx add %r9,(%rdi,%rbx,8) adc %rax,%r10 adc %rdx,%r11 mov 16(%rsi,%rbx,8),%rax mul %rcx add %r10,8(%rdi,%rbx,8) adc %rax,%r11 mov $0,%r12d adc %rdx,%r12 mov 24(%rsi,%rbx,8),%rax mov $0,%r9d mul %rcx add %r11,16(%rdi,%rbx,8) adc %rax,%r12 adc %rdx,%r9 add %r12,24(%rdi,%rbx,8) adc $0,%r9 mov %r9,32(%rdi,%rbx,8) ret next2: cmp $2,%rbx jne next3 #here is 1 load ie if bx=2 mov $0,%r11d mul %rcx add %r9,(%rdi,%rbx,8) adc %rax,%r10 adc %rdx,%r11 mov 16(%rsi,%rbx,8),%rax mul %rcx add %r10,8(%rdi,%rbx,8) adc %rax,%r11 mov $0,%r12d adc %rdx,%r12 add %r11,16(%rdi,%rbx,8) adc $0,%r12 mov %r12,24(%rdi,%rbx,8) ret next3: #here is 0 loads ie if bx=3 mov $0,%r11d mul %rcx add %r9,(%rdi,%rbx,8) adc %rax,%r10 adc %rdx,%r11 add %r10,8(%rdi,%rbx,8) adc $0,%r11 mov %r11,16(%rdi,%rbx,8) ret
#include <stdio.h> #include <stdlib.h> #include "gmpextra.h" #include "gmpextra-1.0.1/gmp-impl.h" #include "rdtsc.h" void jay(mp_ptr rp,mp_srcptr xp,mp_size_t xn,mp_srcptr yp,mp_size_t yn); #define DISP(xp,xn) do{int __t;printf("%s=",#xp);for(__t=(xn)-1;__t>=0;__t--)printf("%lX ",(xp)[__t]);printf("\n");}while(0) int main(void) {mp_limb_t xp[2048],yp[2048],rp[2048],zp[2048];mp_size_t xn,yn,zn;unsigned long t1,t2;double f,o,n; for(xn=1;xn<30;xn++) {for(yn=1;yn<=xn;yn++) {mpn_random(xp,xn);mpn_random(yp,yn);zn=xn*yn; mpn_mul_basecase(zp,xp,xn,yp,yn); MPN_ZERO(rp,xn);jay(rp,xp,xn,yp,yn); if(mpn_cmp(zp,rp,xn+yn)!=0){printf("error %d %d\n",xn,yn);abort();} mpn_mul_basecase(zp,xp,xn,yp,yn);t1=rdtsc();mpn_mul_basecase(zp,xp,xn,yp,yn);t1=rdtsc()-t1; MPN_ZERO(rp,xn);jay(rp,xp,xn,yp,yn);t2=rdtsc();//MPN_ZERO(rp,xn); jay(rp,xp,xn,yp,yn);t2=rdtsc()-t2; o=t1;o=o/zn; n=t2;n=n/zn; f=t1;f=f/t2; printf("xn=%d\tyn=%d\told===%d\told=%f\tnew===%d\tnew=%f\tratio=%f\n",xn,yn,t1,o,t2,n,f); } } return 0;}
xn=1 yn=1 old===27 old=27.000000 new===28 new=28.000000 ratio=0.964286 xn=2 yn=1 old===35 old=17.500000 new===37 new=18.500000 ratio=0.945946 xn=2 yn=2 old===24 old=6.000000 new===45 new=11.250000 ratio=0.533333 xn=3 yn=1 old===55 old=18.333333 new===62 new=20.666667 ratio=0.887097 xn=3 yn=2 old===77 old=12.833333 new===87 new=14.500000 ratio=0.885057 xn=3 yn=3 old===120 old=13.333333 new===89 new=9.888889 ratio=1.348315 xn=4 yn=1 old===44 old=11.000000 new===39 new=9.750000 ratio=1.128205 xn=4 yn=2 old===95 old=11.875000 new===61 new=7.625000 ratio=1.557377 xn=4 yn=3 old===120 old=10.000000 new===105 new=8.750000 ratio=1.142857 xn=4 yn=4 old===117 old=7.312500 new===102 new=6.375000 ratio=1.147059 xn=5 yn=1 old===75 old=15.000000 new===62 new=12.400000 ratio=1.209677 xn=5 yn=2 old===123 old=12.300000 new===74 new=7.400000 ratio=1.662162 xn=5 yn=3 old===123 old=8.200000 new===100 new=6.666667 ratio=1.230000 xn=5 yn=4 old===156 old=7.800000 new===144 new=7.200000 ratio=1.083333 xn=5 yn=5 old===187 old=7.480000 new===143 new=5.720000 ratio=1.307692 xn=6 yn=1 old===67 old=11.166667 new===59 new=9.833333 ratio=1.135593 xn=6 yn=2 old===114 old=9.500000 new===142 new=11.833333 ratio=0.802817 xn=6 yn=3 old===131 old=7.277778 new===138 new=7.666667 ratio=0.949275 xn=6 yn=4 old===161 old=6.708333 new===157 new=6.541667 ratio=1.025478 xn=6 yn=5 old===180 old=6.000000 new===181 new=6.033333 ratio=0.994475 xn=6 yn=6 old===203 old=5.638889 new===196 new=5.444444 ratio=1.035714 xn=7 yn=1 old===68 old=9.714286 new===87 new=12.428571 ratio=0.781609 xn=7 yn=2 old===93 old=6.642857 new===122 new=8.714286 ratio=0.762295 xn=7 yn=3 old===129 old=6.142857 new===167 new=7.952381 ratio=0.772455 xn=7 yn=4 old===148 old=5.285714 new===172 new=6.142857 ratio=0.860465 xn=7 yn=5 old===181 old=5.171429 new===174 new=4.971429 ratio=1.040230 xn=7 yn=6 old===230 old=5.476190 new===212 new=5.047619 ratio=1.084906 xn=7 yn=7 old===242 old=4.938776 new===237 new=4.836735 ratio=1.021097 xn=8 yn=1 old===59 old=7.375000 new===91 new=11.375000 ratio=0.648352 xn=8 yn=2 old===86 old=5.375000 new===110 new=6.875000 ratio=0.781818 xn=8 yn=3 old===122 old=5.083333 new===129 new=5.375000 ratio=0.945736 xn=8 yn=4 old===160 old=5.000000 new===165 new=5.156250 ratio=0.969697 xn=8 yn=5 old===197 old=4.925000 new===194 new=4.850000 ratio=1.015464 xn=8 yn=6 old===233 old=4.854167 new===210 new=4.375000 ratio=1.109524 xn=8 yn=7 old===266 old=4.750000 new===250 new=4.464286 ratio=1.064000 xn=8 yn=8 old===299 old=4.671875 new===281 new=4.390625 ratio=1.064057 xn=9 yn=1 old===62 old=6.888889 new===70 new=7.777778 ratio=0.885714 xn=9 yn=2 old===93 old=5.166667 new===116 new=6.444444 ratio=0.801724 xn=9 yn=3 old===133 old=4.925926 new===148 new=5.481481 ratio=0.898649 xn=9 yn=4 old===174 old=4.833333 new===212 new=5.888889 ratio=0.820755 xn=9 yn=5 old===215 old=4.777778 new===233 new=5.177778 ratio=0.922747 xn=9 yn=6 old===255 old=4.722222 new===254 new=4.703704 ratio=1.003937 xn=9 yn=7 old===290 old=4.603175 new===289 new=4.587302 ratio=1.003460 xn=9 yn=8 old===325 old=4.513889 new===316 new=4.388889 ratio=1.028481 xn=9 yn=9 old===361 old=4.456790 new===347 new=4.283951 ratio=1.040346 xn=10 yn=1 old===64 old=6.400000 new===96 new=9.600000 ratio=0.666667 xn=10 yn=2 old===113 old=5.650000 new===158 new=7.900000 ratio=0.715190 xn=10 yn=3 old===160 old=5.333333 new===199 new=6.633333 ratio=0.804020 xn=10 yn=4 old===205 old=5.125000 new===205 new=5.125000 ratio=1.000000 xn=10 yn=5 old===250 old=5.000000 new===228 new=4.560000 ratio=1.096491 xn=10 yn=6 old===294 old=4.900000 new===272 new=4.533333 ratio=1.080882 xn=10 yn=7 old===332 old=4.742857 new===311 new=4.442857 ratio=1.067524 xn=10 yn=8 old===371 old=4.637500 new===346 new=4.325000 ratio=1.072254 xn=10 yn=9 old===409 old=4.544444 new===381 new=4.233333 ratio=1.073491 xn=10 yn=10 old===459 old=4.590000 new===416 new=4.160000 ratio=1.103365 xn=11 yn=1 old===67 old=6.090909 new===121 new=11.000000 ratio=0.553719 xn=11 yn=2 old===119 old=5.409091 new===164 new=7.454545 ratio=0.725610 xn=11 yn=3 old===169 old=5.121212 new===159 new=4.818182 ratio=1.062893 xn=11 yn=4 old===234 old=5.318182 new===200 new=4.545455 ratio=1.170000 xn=11 yn=5 old===264 old=4.800000 new===240 new=4.363636 ratio=1.100000 xn=11 yn=6 old===318 old=4.818182 new===285 new=4.318182 ratio=1.115789 xn=11 yn=7 old===369 old=4.792208 new===327 new=4.246753 ratio=1.128440 xn=11 yn=8 old===411 old=4.670455 new===362 new=4.113636 ratio=1.135359 xn=11 yn=9 old===445 old=4.494949 new===399 new=4.030303 ratio=1.115288 xn=11 yn=10 old===498 old=4.527273 new===436 new=3.963636 ratio=1.142202 xn=11 yn=11 old===550 old=4.545455 new===473 new=3.909091 ratio=1.162791 xn=12 yn=1 old===72 old=6.000000 new===76 new=6.333333 ratio=0.947368 xn=12 yn=2 old===127 old=5.291667 new===143 new=5.958333 ratio=0.888112 xn=12 yn=3 old===180 old=5.000000 new===168 new=4.666667 ratio=1.071429 xn=12 yn=4 old===233 old=4.854167 new===191 new=3.979167 ratio=1.219895 xn=12 yn=5 old===285 old=4.750000 new===250 new=4.166667 ratio=1.140000 xn=12 yn=6 old===336 old=4.666667 new===300 new=4.166667 ratio=1.120000 xn=12 yn=7 old===395 old=4.702381 new===344 new=4.095238 ratio=1.148256 xn=12 yn=8 old===440 old=4.583333 new===381 new=3.968750 ratio=1.154856 xn=12 yn=9 old===479 old=4.435185 new===420 new=3.888889 ratio=1.140476 xn=12 yn=10 old===535 old=4.458333 new===459 new=3.825000 ratio=1.165577 xn=12 yn=11 old===588 old=4.454545 new===498 new=3.772727 ratio=1.180723 xn=12 yn=12 old===633 old=4.395833 new===537 new=3.729167 ratio=1.178771 xn=13 yn=1 old===75 old=5.769231 new===109 new=8.384615 ratio=0.688073 xn=13 yn=2 old===133 old=5.115385 new===158 new=6.076923 ratio=0.841772 xn=13 yn=3 old===188 old=4.820513 new===172 new=4.410256 ratio=1.093023 xn=13 yn=4 old===245 old=4.711538 new===221 new=4.250000 ratio=1.108597 xn=13 yn=5 old===301 old=4.630769 new===267 new=4.107692 ratio=1.127341 xn=13 yn=6 old===356 old=4.564103 new===316 new=4.051282 ratio=1.126582 xn=13 yn=7 old===423 old=4.648352 new===361 new=3.967033 ratio=1.171745 xn=13 yn=8 old===472 old=4.538462 new===401 new=3.855769 ratio=1.177057 xn=13 yn=9 old===514 old=4.393162 new===442 new=3.777778 ratio=1.162896 xn=13 yn=10 old===573 old=4.407692 new===482 new=3.707692 ratio=1.188797 xn=13 yn=11 old===629 old=4.398601 new===522 new=3.650350 ratio=1.204981 xn=13 yn=12 old===677 old=4.339744 new===562 new=3.602564 ratio=1.204626 xn=13 yn=13 old===725 old=4.289941 new===602 new=3.562130 ratio=1.204319 xn=14 yn=1 old===78 old=5.571429 new===155 new=11.071429 ratio=0.503226 xn=14 yn=2 old===139 old=4.964286 new===167 new=5.964286 ratio=0.832335 xn=14 yn=3 old===198 old=4.714286 new===200 new=4.761905 ratio=0.990000 xn=14 yn=4 old===258 old=4.607143 new===251 new=4.482143 ratio=1.027888 xn=14 yn=5 old===318 old=4.542857 new===298 new=4.257143 ratio=1.067114 xn=14 yn=6 old===377 old=4.488095 new===353 new=4.202381 ratio=1.067989 xn=14 yn=7 old===447 old=4.561224 new===405 new=4.132653 ratio=1.103704 xn=14 yn=8 old===499 old=4.455357 new===451 new=4.026786 ratio=1.106430 xn=14 yn=9 old===544 old=4.317460 new===496 new=3.936508 ratio=1.096774 xn=14 yn=10 old===606 old=4.328571 new===541 new=3.864286 ratio=1.120148 xn=14 yn=11 old===665 old=4.318182 new===586 new=3.805195 ratio=1.134812 xn=14 yn=12 old===716 old=4.261905 new===631 new=3.755952 ratio=1.134707 xn=14 yn=13 old===767 old=4.214286 new===676 new=3.714286 ratio=1.134615 xn=14 yn=14 old===812 old=4.142857 new===721 new=3.678571 ratio=1.126214 xn=15 yn=1 old===81 old=5.400000 new===143 new=9.533333 ratio=0.566434 xn=15 yn=2 old===145 old=4.833333 new===135 new=4.500000 ratio=1.074074 xn=15 yn=3 old===211 old=4.688889 new===210 new=4.666667 ratio=1.004762 xn=15 yn=4 old===274 old=4.566667 new===253 new=4.216667 ratio=1.083004 xn=15 yn=5 old===334 old=4.453333 new===304 new=4.053333 ratio=1.098684 xn=15 yn=6 old===397 old=4.411111 new===361 new=4.011111 ratio=1.099723 xn=15 yn=7 old===473 old=4.504762 new===417 new=3.971429 ratio=1.134293 xn=15 yn=8 old===527 old=4.391667 new===461 new=3.841667 ratio=1.143167 xn=15 yn=9 old===575 old=4.259259 new===508 new=3.762963 ratio=1.131890 xn=15 yn=10 old===640 old=4.266667 new===555 new=3.700000 ratio=1.153153 xn=15 yn=11 old===680 old=4.121212 new===602 new=3.648485 ratio=1.129568 xn=15 yn=12 old===734 old=4.077778 new===649 new=3.605556 ratio=1.130971 xn=15 yn=13 old===788 old=4.041026 new===696 new=3.569231 ratio=1.132184 xn=15 yn=14 old===842 old=4.009524 new===743 new=3.538095 ratio=1.133244 xn=15 yn=15 old===896 old=3.982222 new===790 new=3.511111 ratio=1.134177 xn=16 yn=1 old===86 old=5.375000 new===134 new=8.375000 ratio=0.641791 xn=16 yn=2 old===153 old=4.781250 new===167 new=5.218750 ratio=0.916168 xn=16 yn=3 old===222 old=4.625000 new===213 new=4.437500 ratio=1.042254 xn=16 yn=4 old===290 old=4.531250 new===255 new=3.984375 ratio=1.137255 xn=16 yn=5 old===357 old=4.462500 new===316 new=3.950000 ratio=1.129747 xn=16 yn=6 old===421 old=4.385417 new===377 new=3.927083 ratio=1.116711 xn=16 yn=7 old===484 old=4.321429 new===434 new=3.875000 ratio=1.115207 xn=16 yn=8 old===541 old=4.226562 new===483 new=3.773438 ratio=1.120083 xn=16 yn=9 old===598 old=4.152778 new===532 new=3.694444 ratio=1.124060 xn=16 yn=10 old===666 old=4.162500 new===581 new=3.631250 ratio=1.146299 xn=16 yn=11 old===725 old=4.119318 new===630 new=3.579545 ratio=1.150794 xn=16 yn=12 old===782 old=4.072917 new===679 new=3.536458 ratio=1.151694 xn=16 yn=13 old===839 old=4.033654 new===728 new=3.500000 ratio=1.152473 xn=16 yn=14 old===896 old=4.000000 new===777 new=3.468750 ratio=1.153153 xn=16 yn=15 old===953 old=3.970833 new===826 new=3.441667 ratio=1.153753 xn=16 yn=16 old===1010 old=3.945312 new===875 new=3.417969 ratio=1.154286 xn=17 yn=1 old===89 old=5.235294 new===127 new=7.470588 ratio=0.700787 xn=17 yn=2 old===159 old=4.676471 new===183 new=5.382353 ratio=0.868852 xn=17 yn=3 old===231 old=4.529412 new===220 new=4.313725 ratio=1.050000 xn=17 yn=4 old===303 old=4.455882 new===269 new=3.955882 ratio=1.126394 xn=17 yn=5 old===374 old=4.400000 new===329 new=3.870588 ratio=1.136778 xn=17 yn=6 old===443 old=4.343137 new===395 new=3.872549 ratio=1.121519 xn=17 yn=7 old===509 old=4.277311 new===455 new=3.823529 ratio=1.118681 xn=17 yn=8 old===570 old=4.191176 new===505 new=3.713235 ratio=1.128713 xn=17 yn=9 old===630 old=4.117647 new===556 new=3.633987 ratio=1.133094 xn=17 yn=10 old===701 old=4.123529 new===606 new=3.564706 ratio=1.156766 xn=17 yn=11 old===763 old=4.080214 new===656 new=3.508021 ratio=1.163110 xn=17 yn=12 old===823 old=4.034314 new===706 new=3.460784 ratio=1.165722 xn=17 yn=13 old===883 old=3.995475 new===756 new=3.420814 ratio=1.167989 xn=17 yn=14 old===943 old=3.962185 new===806 new=3.386555 ratio=1.169975 xn=17 yn=15 old===1003 old=3.933333 new===856 new=3.356863 ratio=1.171729 xn=17 yn=16 old===1063 old=3.908088 new===906 new=3.330882 ratio=1.173289 xn=17 yn=17 old===1123 old=3.885813 new===957 new=3.311419 ratio=1.173459 xn=18 yn=1 old===92 old=5.111111 new===133 new=7.388889 ratio=0.691729 xn=18 yn=2 old===173 old=4.805556 new===166 new=4.611111 ratio=1.042169 xn=18 yn=3 old===275 old=5.092593 new===205 new=3.796296 ratio=1.341463 xn=18 yn=4 old===367 old=5.097222 new===286 new=3.972222 ratio=1.283217 xn=18 yn=5 old===422 old=4.688889 new===358 new=3.977778 ratio=1.178771 xn=18 yn=6 old===500 old=4.629630 new===425 new=3.935185 ratio=1.176471 xn=18 yn=7 old===570 old=4.523810 new===492 new=3.904762 ratio=1.158537 xn=18 yn=8 old===642 old=4.458333 new===543 new=3.770833 ratio=1.182320 xn=18 yn=9 old===714 old=4.407407 new===598 new=3.691358 ratio=1.193980 xn=18 yn=10 old===786 old=4.366667 new===653 new=3.627778 ratio=1.203675 xn=18 yn=11 old===858 old=4.333333 new===708 new=3.575758 ratio=1.211864 xn=18 yn=12 old===930 old=4.305556 new===763 new=3.532407 ratio=1.218873 xn=18 yn=13 old===1002 old=4.282051 new===818 new=3.495726 ratio=1.224939 xn=18 yn=14 old===1074 old=4.261905 new===873 new=3.464286 ratio=1.230241 xn=18 yn=15 old===1146 old=4.244444 new===928 new=3.437037 ratio=1.234914 xn=18 yn=16 old===1218 old=4.229167 new===983 new=3.413194 ratio=1.239064 xn=18 yn=17 old===1290 old=4.215686 new===1038 new=3.392157 ratio=1.242775 xn=18 yn=18 old===1362 old=4.203704 new===1093 new=3.373457 ratio=1.246112 xn=19 yn=1 old===95 old=5.000000 new===146 new=7.684211 ratio=0.650685 xn=19 yn=2 old===173 old=4.552632 new===169 new=4.447368 ratio=1.023669 xn=19 yn=3 old===254 old=4.456140 new===212 new=3.719298 ratio=1.198113 xn=19 yn=4 old===348 old=4.578947 new===297 new=3.907895 ratio=1.171717 xn=19 yn=5 old===434 old=4.568421 new===373 new=3.926316 ratio=1.163539 xn=19 yn=6 old===514 old=4.508772 new===446 new=3.912281 ratio=1.152466 xn=19 yn=7 old===587 old=4.413534 new===510 new=3.834586 ratio=1.150980 xn=19 yn=8 old===661 old=4.348684 new===567 new=3.730263 ratio=1.165785 xn=19 yn=9 old===735 old=4.298246 new===624 new=3.649123 ratio=1.177885 xn=19 yn=10 old===809 old=4.257895 new===681 new=3.584211 ratio=1.187959 xn=19 yn=11 old===884 old=4.229665 new===738 new=3.531100 ratio=1.197832 xn=19 yn=12 old===958 old=4.201754 new===795 new=3.486842 ratio=1.205031 xn=19 yn=13 old===1032 old=4.178138 new===852 new=3.449393 ratio=1.211268 xn=19 yn=14 old===1106 old=4.157895 new===909 new=3.417293 ratio=1.216722 xn=19 yn=15 old===1180 old=4.140351 new===966 new=3.389474 ratio=1.221532 xn=19 yn=16 old===1254 old=4.125000 new===1023 new=3.365132 ratio=1.225806 xn=19 yn=17 old===1328 old=4.111455 new===1080 new=3.343653 ratio=1.229630 xn=19 yn=18 old===1402 old=4.099415 new===1137 new=3.324561 ratio=1.233069 xn=19 yn=19 old===1477 old=4.091413 new===1194 new=3.307479 ratio=1.237018 xn=20 yn=1 old===100 old=5.000000 new===123 new=6.150000 ratio=0.813008 xn=20 yn=2 old===181 old=4.525000 new===173 new=4.325000 ratio=1.046243 xn=20 yn=3 old===264 old=4.400000 new===237 new=3.950000 ratio=1.113924 xn=20 yn=4 old===363 old=4.537500 new===304 new=3.800000 ratio=1.194079 xn=20 yn=5 old===448 old=4.480000 new===378 new=3.780000 ratio=1.185185 xn=20 yn=6 old===528 old=4.400000 new===454 new=3.783333 ratio=1.162996 xn=20 yn=7 old===598 old=4.271429 new===525 new=3.750000 ratio=1.139048 xn=20 yn=8 old===668 old=4.175000 new===581 new=3.631250 ratio=1.149742 xn=20 yn=9 old===738 old=4.100000 new===640 new=3.555556 ratio=1.153125 xn=20 yn=10 old===808 old=4.040000 new===699 new=3.495000 ratio=1.155937 xn=20 yn=11 old===878 old=3.990909 new===758 new=3.445455 ratio=1.158311 xn=20 yn=12 old===948 old=3.950000 new===817 new=3.404167 ratio=1.160343 xn=20 yn=13 old===1018 old=3.915385 new===876 new=3.369231 ratio=1.162100 xn=20 yn=14 old===1088 old=3.885714 new===935 new=3.339286 ratio=1.163636 xn=20 yn=15 old===1158 old=3.860000 new===994 new=3.313333 ratio=1.164990 xn=20 yn=16 old===1228 old=3.837500 new===1053 new=3.290625 ratio=1.166192 xn=20 yn=17 old===1298 old=3.817647 new===1112 new=3.270588 ratio=1.167266 xn=20 yn=18 old===1368 old=3.800000 new===1171 new=3.252778 ratio=1.168232 xn=20 yn=19 old===1438 old=3.784211 new===1230 new=3.236842 ratio=1.169106 xn=20 yn=20 old===1508 old=3.770000 new===1289 new=3.222500 ratio=1.169899 xn=21 yn=1 old===103 old=4.904762 new===132 new=6.285714 ratio=0.780303 xn=21 yn=2 old===187 old=4.452381 new===179 new=4.261905 ratio=1.044693 xn=21 yn=3 old===275 old=4.365079 new===236 new=3.746032 ratio=1.165254 xn=21 yn=4 old===377 old=4.488095 new===315 new=3.750000 ratio=1.196825 xn=21 yn=5 old===465 old=4.428571 new===388 new=3.695238 ratio=1.198454 xn=21 yn=6 old===550 old=4.365079 new===467 new=3.706349 ratio=1.177730 xn=21 yn=7 old===623 old=4.238095 new===542 new=3.687075 ratio=1.149446 xn=21 yn=8 old===696 old=4.142857 new===603 new=3.589286 ratio=1.154229 xn=21 yn=9 old===769 old=4.068783 new===664 new=3.513228 ratio=1.158133 xn=21 yn=10 old===842 old=4.009524 new===724 new=3.447619 ratio=1.162983 xn=21 yn=11 old===915 old=3.961039 new===784 new=3.393939 ratio=1.167092 xn=21 yn=12 old===988 old=3.920635 new===844 new=3.349206 ratio=1.170616 xn=21 yn=13 old===1061 old=3.886447 new===904 new=3.311355 ratio=1.173673 xn=21 yn=14 old===1134 old=3.857143 new===964 new=3.278912 ratio=1.176349 xn=21 yn=15 old===1207 old=3.831746 new===1024 new=3.250794 ratio=1.178711 xn=21 yn=16 old===1280 old=3.809524 new===1084 new=3.226190 ratio=1.180812 xn=21 yn=17 old===1353 old=3.789916 new===1145 new=3.207283 ratio=1.181659 xn=21 yn=18 old===1426 old=3.772487 new===1205 new=3.187831 ratio=1.183402 xn=21 yn=19 old===1499 old=3.756892 new===1265 new=3.170426 ratio=1.184980 xn=21 yn=20 old===1572 old=3.742857 new===1325 new=3.154762 ratio=1.186415 xn=21 yn=21 old===1645 old=3.730159 new===1385 new=3.140590 ratio=1.187726 xn=22 yn=1 old===106 old=4.818182 new===140 new=6.363636 ratio=0.757143 xn=22 yn=2 old===193 old=4.386364 new===213 new=4.840909 ratio=0.906103 xn=22 yn=3 old===284 old=4.303030 new===266 new=4.030303 ratio=1.067669 xn=22 yn=4 old===390 old=4.431818 new===333 new=3.784091 ratio=1.171171 xn=22 yn=5 old===482 old=4.381818 new===421 new=3.827273 ratio=1.144893 xn=22 yn=6 old===572 old=4.333333 new===502 new=3.803030 ratio=1.139442 xn=22 yn=7 old===647 old=4.201299 new===584 new=3.792208 ratio=1.107877 xn=22 yn=8 old===723 old=4.107955 new===648 new=3.681818 ratio=1.115741 xn=22 yn=9 old===799 old=4.035354 new===713 new=3.601010 ratio=1.120617 xn=22 yn=10 old===875 old=3.977273 new===778 new=3.536364 ratio=1.124679 xn=22 yn=11 old===951 old=3.929752 new===843 new=3.483471 ratio=1.128114 xn=22 yn=12 old===1027 old=3.890152 new===908 new=3.439394 ratio=1.131057 xn=22 yn=13 old===1103 old=3.856643 new===973 new=3.402098 ratio=1.133607 xn=22 yn=14 old===1179 old=3.827922 new===1038 new=3.370130 ratio=1.135838 xn=22 yn=15 old===1255 old=3.803030 new===1103 new=3.342424 ratio=1.137806 xn=22 yn=16 old===1331 old=3.781250 new===1168 new=3.318182 ratio=1.139555 xn=22 yn=17 old===1407 old=3.762032 new===1233 new=3.296791 ratio=1.141119 xn=22 yn=18 old===1483 old=3.744949 new===1298 new=3.277778 ratio=1.142527 xn=22 yn=19 old===1559 old=3.729665 new===1363 new=3.260766 ratio=1.143800 xn=22 yn=20 old===1635 old=3.715909 new===1428 new=3.245455 ratio=1.144958 xn=22 yn=21 old===1711 old=3.703463 new===1493 new=3.231602 ratio=1.146015 xn=22 yn=22 old===1787 old=3.692149 new===1558 new=3.219008 ratio=1.146983 xn=23 yn=1 old===109 old=4.739130 new===152 new=6.608696 ratio=0.717105 xn=23 yn=2 old===199 old=4.326087 new===173 new=3.760870 ratio=1.150289 xn=23 yn=3 old===294 old=4.260870 new===246 new=3.565217 ratio=1.195122 xn=23 yn=4 old===403 old=4.380435 new===344 new=3.739130 ratio=1.171512 xn=23 yn=5 old===500 old=4.347826 new===434 new=3.773913 ratio=1.152074 xn=23 yn=6 old===594 old=4.304348 new===517 new=3.746377 ratio=1.148936 xn=23 yn=7 old===672 old=4.173913 new===601 new=3.732919 ratio=1.118136 xn=23 yn=8 old===751 old=4.081522 new===665 new=3.614130 ratio=1.129323 xn=23 yn=9 old===830 old=4.009662 new===732 new=3.536232 ratio=1.133880 xn=23 yn=10 old===909 old=3.952174 new===799 new=3.473913 ratio=1.137672 xn=23 yn=11 old===988 old=3.905138 new===866 new=3.422925 ratio=1.140878 xn=23 yn=12 old===1067 old=3.865942 new===933 new=3.380435 ratio=1.143623 xn=23 yn=13 old===1146 old=3.832776 new===1000 new=3.344482 ratio=1.146000 xn=23 yn=14 old===1225 old=3.804348 new===1067 new=3.313665 ratio=1.148079 xn=23 yn=15 old===1304 old=3.779710 new===1134 new=3.286957 ratio=1.149912 xn=23 yn=16 old===1383 old=3.758152 new===1201 new=3.263587 ratio=1.151540 xn=23 yn=17 old===1462 old=3.739130 new===1268 new=3.242967 ratio=1.152997 xn=23 yn=18 old===1541 old=3.722222 new===1335 new=3.224638 ratio=1.154307 xn=23 yn=19 old===1620 old=3.707094 new===1402 new=3.208238 ratio=1.155492 xn=23 yn=20 old===1699 old=3.693478 new===1469 new=3.193478 ratio=1.156569 xn=23 yn=21 old===1778 old=3.681159 new===1536 new=3.180124 ratio=1.157552 xn=23 yn=22 old===1857 old=3.669960 new===1603 new=3.167984 ratio=1.158453 xn=23 yn=23 old===1936 old=3.659735 new===1670 new=3.156900 ratio=1.159281 xn=24 yn=1 old===114 old=4.750000 new===155 new=6.458333 ratio=0.735484 xn=24 yn=2 old===207 old=4.312500 new===176 new=3.666667 ratio=1.176136 xn=24 yn=3 old===306 old=4.250000 new===254 new=3.527778 ratio=1.204724 xn=24 yn=4 old===421 old=4.385417 new===351 new=3.656250 ratio=1.199430 xn=24 yn=5 old===525 old=4.375000 new===439 new=3.658333 ratio=1.195900 xn=24 yn=6 old===619 old=4.298611 new===529 new=3.673611 ratio=1.170132 xn=24 yn=7 old===701 old=4.172619 new===614 new=3.654762 ratio=1.141694 xn=24 yn=8 old===783 old=4.078125 new===682 new=3.552083 ratio=1.148094 xn=24 yn=9 old===865 old=4.004630 new===751 new=3.476852 ratio=1.151798 xn=24 yn=10 old===947 old=3.945833 new===820 new=3.416667 ratio=1.154878 xn=24 yn=11 old===1029 old=3.897727 new===889 new=3.367424 ratio=1.157480 xn=24 yn=12 old===1111 old=3.857639 new===958 new=3.326389 ratio=1.159708 xn=24 yn=13 old===1193 old=3.823718 new===1027 new=3.291667 ratio=1.161636 xn=24 yn=14 old===1275 old=3.794643 new===1096 new=3.261905 ratio=1.163321 xn=24 yn=15 old===1357 old=3.769444 new===1165 new=3.236111 ratio=1.164807 xn=24 yn=16 old===1439 old=3.747396 new===1234 new=3.213542 ratio=1.166126 xn=24 yn=17 old===1521 old=3.727941 new===1303 new=3.193627 ratio=1.167306 xn=24 yn=18 old===1603 old=3.710648 new===1372 new=3.175926 ratio=1.168367 xn=24 yn=19 old===1685 old=3.695175 new===1441 new=3.160088 ratio=1.169327 xn=24 yn=20 old===1767 old=3.681250 new===1510 new=3.145833 ratio=1.170199 xn=24 yn=21 old===1849 old=3.668651 new===1579 new=3.132937 ratio=1.170994 xn=24 yn=22 old===1931 old=3.657197 new===1648 new=3.121212 ratio=1.171723 xn=24 yn=23 old===2013 old=3.646739 new===1717 new=3.110507 ratio=1.172394 xn=24 yn=24 old===2095 old=3.637153 new===1786 new=3.100694 ratio=1.173012 xn=25 yn=1 old===117 old=4.680000 new===144 new=5.760000 ratio=0.812500 xn=25 yn=2 old===213 old=4.260000 new===180 new=3.600000 ratio=1.183333 xn=25 yn=3 old===315 old=4.200000 new===276 new=3.680000 ratio=1.141304 xn=25 yn=4 old===433 old=4.330000 new===366 new=3.660000 ratio=1.183060 xn=25 yn=5 old===536 old=4.288000 new===457 new=3.656000 ratio=1.172867 xn=25 yn=6 old===635 old=4.233333 new===547 new=3.646667 ratio=1.160878 xn=25 yn=7 old===720 old=4.114286 new===637 new=3.640000 ratio=1.130298 xn=25 yn=8 old===805 old=4.025000 new===707 new=3.535000 ratio=1.138614 xn=25 yn=9 old===890 old=3.955556 new===778 new=3.457778 ratio=1.143959 xn=25 yn=10 old===975 old=3.900000 new===848 new=3.392000 ratio=1.149764 xn=25 yn=11 old===1060 old=3.854545 new===918 new=3.338182 ratio=1.154684 xn=25 yn=12 old===1145 old=3.816667 new===988 new=3.293333 ratio=1.158907 xn=25 yn=13 old===1230 old=3.784615 new===1058 new=3.255385 ratio=1.162571 xn=25 yn=14 old===1315 old=3.757143 new===1128 new=3.222857 ratio=1.165780 xn=25 yn=15 old===1400 old=3.733333 new===1198 new=3.194667 ratio=1.168614 xn=25 yn=16 old===1485 old=3.712500 new===1268 new=3.170000 ratio=1.171136 xn=25 yn=17 old===1570 old=3.694118 new===1339 new=3.150588 ratio=1.172517 xn=25 yn=18 old===1655 old=3.677778 new===1409 new=3.131111 ratio=1.174592 xn=25 yn=19 old===1740 old=3.663158 new===1479 new=3.113684 ratio=1.176471 xn=25 yn=20 old===1825 old=3.650000 new===1549 new=3.098000 ratio=1.178179 xn=25 yn=21 old===1910 old=3.638095 new===1619 new=3.083810 ratio=1.179741 xn=25 yn=22 old===1995 old=3.627273 new===1689 new=3.070909 ratio=1.181172 xn=25 yn=23 old===2080 old=3.617391 new===1759 new=3.059130 ratio=1.182490 xn=25 yn=24 old===2165 old=3.608333 new===1829 new=3.048333 ratio=1.183707 xn=25 yn=25 old===2250 old=3.600000 new===1900 new=3.040000 ratio=1.184211 xn=26 yn=1 old===120 old=4.615385 new===131 new=5.038462 ratio=0.916031 xn=26 yn=2 old===219 old=4.211538 new===190 new=3.653846 ratio=1.152632 xn=26 yn=3 old===326 old=4.179487 new===287 new=3.679487 ratio=1.135889 xn=26 yn=4 old===450 old=4.326923 new===383 new=3.682692 ratio=1.174935 xn=26 yn=5 old===554 old=4.261538 new===478 new=3.676923 ratio=1.158996 xn=26 yn=6 old===659 old=4.224359 new===573 new=3.673077 ratio=1.150087 xn=26 yn=7 old===757 old=4.159341 new===671 new=3.686813 ratio=1.128167 xn=26 yn=8 old===844 old=4.057692 new===746 new=3.586538 ratio=1.131367 xn=26 yn=9 old===932 old=3.982906 new===821 new=3.508547 ratio=1.135201 xn=26 yn=10 old===1020 old=3.923077 new===896 new=3.446154 ratio=1.138393 xn=26 yn=11 old===1108 old=3.874126 new===971 new=3.395105 ratio=1.141092 xn=26 yn=12 old===1196 old=3.833333 new===1046 new=3.352564 ratio=1.143403 xn=26 yn=13 old===1284 old=3.798817 new===1121 new=3.316568 ratio=1.145406 xn=26 yn=14 old===1372 old=3.769231 new===1196 new=3.285714 ratio=1.147157 xn=26 yn=15 old===1460 old=3.743590 new===1271 new=3.258974 ratio=1.148702 xn=26 yn=16 old===1548 old=3.721154 new===1346 new=3.235577 ratio=1.150074 xn=26 yn=17 old===1636 old=3.701357 new===1421 new=3.214932 ratio=1.151302 xn=26 yn=18 old===1724 old=3.683761 new===1496 new=3.196581 ratio=1.152406 xn=26 yn=19 old===1812 old=3.668016 new===1571 new=3.180162 ratio=1.153405 xn=26 yn=20 old===1900 old=3.653846 new===1646 new=3.165385 ratio=1.154313 xn=26 yn=21 old===1988 old=3.641026 new===1721 new=3.152015 ratio=1.155142 xn=26 yn=22 old===2076 old=3.629371 new===1796 new=3.139860 ratio=1.155902 xn=26 yn=23 old===2164 old=3.618729 new===1871 new=3.128763 ratio=1.156601 xn=26 yn=24 old===2252 old=3.608974 new===1946 new=3.118590 ratio=1.157246 xn=26 yn=25 old===2340 old=3.600000 new===2021 new=3.109231 ratio=1.157843 xn=26 yn=26 old===2428 old=3.591716 new===2096 new=3.100592 ratio=1.158397 xn=27 yn=1 old===123 old=4.555556 new===167 new=6.185185 ratio=0.736527 xn=27 yn=2 old===225 old=4.166667 new===195 new=3.611111 ratio=1.153846 xn=27 yn=3 old===335 old=4.135802 new===295 new=3.641975 ratio=1.135593 xn=27 yn=4 old===461 old=4.268519 new===393 new=3.638889 ratio=1.173028 xn=27 yn=5 old===571 old=4.229630 new===495 new=3.666667 ratio=1.153535 xn=27 yn=6 old===677 old=4.179012 new===596 new=3.679012 ratio=1.135906 xn=27 yn=7 old===767 old=4.058201 new===692 new=3.661376 ratio=1.108382 xn=27 yn=8 old===858 old=3.972222 new===769 new=3.560185 ratio=1.115735 xn=27 yn=9 old===949 old=3.905350 new===846 new=3.481481 ratio=1.121749 xn=27 yn=10 old===1040 old=3.851852 new===923 new=3.418519 ratio=1.126761 xn=27 yn=11 old===1131 old=3.808081 new===1000 new=3.367003 ratio=1.131000 xn=27 yn=12 old===1222 old=3.771605 new===1077 new=3.324074 ratio=1.134633 xn=27 yn=13 old===1313 old=3.740741 new===1154 new=3.287749 ratio=1.137782 xn=27 yn=14 old===1404 old=3.714286 new===1231 new=3.256614 ratio=1.140536 xn=27 yn=15 old===1495 old=3.691358 new===1308 new=3.229630 ratio=1.142966 xn=27 yn=16 old===1586 old=3.671296 new===1385 new=3.206019 ratio=1.145126 xn=27 yn=17 old===1677 old=3.653595 new===1462 new=3.185185 ratio=1.147059 xn=27 yn=18 old===1768 old=3.637860 new===1539 new=3.166667 ratio=1.148798 xn=27 yn=19 old===1859 old=3.623782 new===1616 new=3.150097 ratio=1.150371 xn=27 yn=20 old===1950 old=3.611111 new===1693 new=3.135185 ratio=1.151802 xn=27 yn=21 old===2041 old=3.599647 new===1770 new=3.121693 ratio=1.153107 xn=27 yn=22 old===2132 old=3.589226 new===1847 new=3.109428 ratio=1.154304 xn=27 yn=23 old===2223 old=3.579710 new===1924 new=3.098229 ratio=1.155405 xn=27 yn=24 old===2314 old=3.570988 new===2001 new=3.087963 ratio=1.156422 xn=27 yn=25 old===2405 old=3.562963 new===2078 new=3.078519 ratio=1.157363 xn=27 yn=26 old===2496 old=3.555556 new===2155 new=3.069801 ratio=1.158237 xn=27 yn=27 old===2587 old=3.548697 new===2232 new=3.061728 ratio=1.159050 xn=28 yn=1 old===128 old=4.571429 new===116 new=4.142857 ratio=1.103448 xn=28 yn=2 old===233 old=4.160714 new===185 new=3.303571 ratio=1.259459 xn=28 yn=3 old===347 old=4.130952 new===284 new=3.380952 ratio=1.221831 xn=28 yn=4 old===476 old=4.250000 new===400 new=3.571429 ratio=1.190000 xn=28 yn=5 old===591 old=4.221429 new===502 new=3.585714 ratio=1.177291 xn=28 yn=6 old===700 old=4.166667 new===606 new=3.607143 ratio=1.155116 xn=28 yn=7 old===793 old=4.045918 new===704 new=3.591837 ratio=1.126420 xn=28 yn=8 old===887 old=3.959821 new===783 new=3.495536 ratio=1.132822 xn=28 yn=9 old===981 old=3.892857 new===862 new=3.420635 ratio=1.138051 xn=28 yn=10 old===1075 old=3.839286 new===941 new=3.360714 ratio=1.142402 xn=28 yn=11 old===1169 old=3.795455 new===1020 new=3.311688 ratio=1.146078 xn=28 yn=12 old===1263 old=3.758929 new===1099 new=3.270833 ratio=1.149227 xn=28 yn=13 old===1357 old=3.728022 new===1178 new=3.236264 ratio=1.151952 xn=28 yn=14 old===1451 old=3.701531 new===1257 new=3.206633 ratio=1.154336 xn=28 yn=15 old===1545 old=3.678571 new===1336 new=3.180952 ratio=1.156437 xn=28 yn=16 old===1639 old=3.658482 new===1415 new=3.158482 ratio=1.158304 xn=28 yn=17 old===1733 old=3.640756 new===1494 new=3.138655 ratio=1.159973 xn=28 yn=18 old===1827 old=3.625000 new===1573 new=3.121032 ratio=1.161475 xn=28 yn=19 old===1921 old=3.610902 new===1652 new=3.105263 ratio=1.162833 xn=28 yn=20 old===2015 old=3.598214 new===1731 new=3.091071 ratio=1.164067 xn=28 yn=21 old===2109 old=3.586735 new===1810 new=3.078231 ratio=1.165193 xn=28 yn=22 old===2203 old=3.576299 new===1889 new=3.066558 ratio=1.166226 xn=28 yn=23 old===2297 old=3.566770 new===1968 new=3.055901 ratio=1.167175 xn=28 yn=24 old===2391 old=3.558036 new===2047 new=3.046131 ratio=1.168051 xn=28 yn=25 old===2485 old=3.550000 new===2126 new=3.037143 ratio=1.168862 xn=28 yn=26 old===2579 old=3.542582 new===2205 new=3.028846 ratio=1.169615 xn=28 yn=27 old===2673 old=3.535714 new===2284 new=3.021164 ratio=1.170315 xn=28 yn=28 old===2767 old=3.529337 new===2363 new=3.014031 ratio=1.170969 xn=29 yn=1 old===131 old=4.517241 new===158 new=5.448276 ratio=0.829114 xn=29 yn=2 old===239 old=4.120690 new===185 new=3.189655 ratio=1.291892 xn=29 yn=3 old===357 old=4.103448 new===293 new=3.367816 ratio=1.218430 xn=29 yn=4 old===491 old=4.232759 new===415 new=3.577586 ratio=1.183133 xn=29 yn=5 old===610 old=4.206897 new===512 new=3.531034 ratio=1.191406 xn=29 yn=6 old===723 old=4.155172 new===618 new=3.551724 ratio=1.169903 xn=29 yn=7 old===820 old=4.039409 new===721 new=3.551724 ratio=1.137309 xn=29 yn=8 old===917 old=3.952586 new===802 new=3.456897 ratio=1.143392 xn=29 yn=9 old===1014 old=3.885057 new===883 new=3.383142 ratio=1.148358 xn=29 yn=10 old===1111 old=3.831034 new===963 new=3.320690 ratio=1.153686 xn=29 yn=11 old===1208 old=3.786834 new===1043 new=3.269592 ratio=1.158198 xn=29 yn=12 old===1305 old=3.750000 new===1123 new=3.227011 ratio=1.162066 xn=29 yn=13 old===1402 old=3.718833 new===1203 new=3.190981 ratio=1.165420 xn=29 yn=14 old===1499 old=3.692118 new===1283 new=3.160099 ratio=1.168355 xn=29 yn=15 old===1596 old=3.668966 new===1363 new=3.133333 ratio=1.170946 xn=29 yn=16 old===1693 old=3.648707 new===1443 new=3.109914 ratio=1.173250 xn=29 yn=17 old===1790 old=3.630832 new===1524 new=3.091278 ratio=1.174541 xn=29 yn=18 old===1887 old=3.614943 new===1604 new=3.072797 ratio=1.176434 xn=29 yn=19 old===1984 old=3.600726 new===1684 new=3.056261 ratio=1.178147 xn=29 yn=20 old===2081 old=3.587931 new===1764 new=3.041379 ratio=1.179705 xn=29 yn=21 old===2178 old=3.576355 new===1844 new=3.027915 ratio=1.181128 xn=29 yn=22 old===2275 old=3.565831 new===1924 new=3.015674 ratio=1.182432 xn=29 yn=23 old===2372 old=3.556222 new===2004 new=3.004498 ratio=1.183633 xn=29 yn=24 old===2469 old=3.547414 new===2084 new=2.994253 ratio=1.184741 xn=29 yn=25 old===2566 old=3.539310 new===2165 new=2.986207 ratio=1.185219 xn=29 yn=26 old===2663 old=3.531830 new===2245 new=2.977454 ratio=1.186192 xn=29 yn=27 old===2760 old=3.524904 new===2325 new=2.969349 ratio=1.187097 xn=29 yn=28 old===2857 old=3.518473 new===2405 new=2.961823 ratio=1.187942 xn=29 yn=29 old===2954 old=3.512485 new===2485 new=2.954816 ratio=1.188732