Changeset 1442 for applications

Show
Ignore:
Timestamp:
03/27/12 11:55:36 (12 years ago)
Author:
smidl
Message:

festerexp

Location:
applications/pmsm/simulator_zdenek/ekf_example
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • applications/pmsm/simulator_zdenek/ekf_example/mpf_double.cpp

    r1440 r1442  
    1 #include "mpf_double.h" 
    21#include "math.h" 
    32#include <stdio.h> 
     3#include "fast_exp.h" 
     4#include "fastexp.h" 
     5#include "mpf_double.h" 
    46#include "RArandn.h" 
    5 #include "fast_exp.h" 
    67 
    78static floatx om[N]; 
     
    1819static floatx qom; 
    1920static floatx r; 
     21static floatx rinv; 
    2022 
    2123 
     
    151153                zeta = *Pt_i/ ( r+*Pt_i*CC ); 
    152154                oCC = ( 1-zeta*CC ); 
    153                 ro = oCC/r; 
     155                ro = oCC*rinv; 
    154156 
    155157                Kd = *Pt_i*Cd*ro; 
     
    168170 
    169171                //lwi[i] = 0.5* ( log ( detRy ) + ( ydC*ydC*zeta -(ydiffd*ydiffd+ydiffq*ydiffq) ) /r ) ; 
    170                 lwi[i] = 0.5*( ydC*ydC*zeta -(ydiffd*ydiffd+ydiffq*ydiffq) ) /r ; 
     172                lwi[i] = 0.5*( ydC*ydC*zeta -(ydiffd*ydiffd+ydiffq*ydiffq) ) *rinv ; 
    171173                 
    172174                *isdm_i=isd; 
     
    192194        for ( i=0;i<N;i++,lw_i++,w_i++ ) { 
    193195//              *lw_i-=maxlwi; 
    194                 (*w_i)=EXP ( *lw_i ); // always resample -> wmin=1/n; 
     196                (*w_i)=fasterexp ( *lw_i ); // always resample -> wmin=1/n; 
    195197        } 
    196198 
     
    213215        int i; 
    214216        r=r0; 
     217        rinv = 1.0/r; 
    215218        qth=qth0; 
    216219        qom=qom0; 
     
    303306                zeta = Pt/ ( r+Pt*CC ); 
    304307                oCC = ( 1-zeta*CC ); 
    305                 ro = oCC/r; 
     308                ro = oCC*rinv; 
    306309 
    307310                Kd = Pt*Cd*ro; 
     
    313316                ypq = Cq*om; 
    314317 
    315                 detRy = ro/r; 
     318                detRy = ro*rinv; 
    316319                om = om + Kd* ( difid - ypd ) +Kq* ( difiq-ypq ); 
    317320                ydiffd = ( ypd-difid ); 
  • applications/pmsm/simulator_zdenek/ekf_example/test_exp.c

    r1440 r1442  
    1 #include "fast_exp.h" 
     1#include "fastexp.h" 
    22#include <stdio.h> 
    33int main(){ 
    44        double d; 
    55        for (d=-1; d<1; d+=0.01) 
    6                 printf("exp: %f, fast_exp: %f\n", exp(d), EXP(d) ); 
     6                printf("exp: %f, fast_exp: %f\n", exp(d), fasterexp(d) ); 
    77        return 0; 
    88}