Skip to content

Commit

Permalink
considering time consumption, we use a simple version of mulfix
Browse files Browse the repository at this point in the history
Addresses #653.
  • Loading branch information
PeiMu committed Jun 7, 2023
1 parent 1991dd2 commit ff056d4
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 8 deletions.
46 changes: 46 additions & 0 deletions analysis/statistics/904f911572e0d79684beb60960146404aecbbc92.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@

changeset: 1500:904f911572e0d79684beb60960146404aecbbc92
char kNewtonVersion[] = "0.3-alpha-1500 (904f911572e0d79684beb60960146404aecbbc92) (build 06-07-2023-12:[email protected]_64)";
\n./src/noisy/noisy-linux-EN -O0 applications/noisy/helloWorld.n -s
\n./src/newton/newton-linux-EN -v 0 -eP applications/newton/invariants/ViolinWithTemperatureDependence-pigroups.nt

Informational Report:
---------------------
Invariant "ViolinWithTemperatureDependenceForPiGroups" has 2 unique kernels, each with 2 column(s)...

Kernel 0 is a valid kernel:

1 1
-0.5 -0
1 0
0.5 0
0 -1
-0 -1


The ordering of parameters is: P1 P0 P3 P2 P4 P5

Pi group 0, Pi 0 is: P0^(-0.5) P1^( 1) P2^(0.5) P3^( 1) P4^( 0) P5^(-0)

Pi group 0, Pi 1 is: P0^(-0) P1^( 1) P2^( 0) P3^( 0) P4^(-1) P5^(-1)


Kernel 1 is a valid kernel:

1 0
-0.5 1
1 -2
0.5 -1
-0 -2
0 -2


The ordering of parameters is: P1 P0 P3 P2 P4 P5

Pi group 1, Pi 0 is: P0^(-0.5) P1^( 1) P2^(0.5) P3^( 1) P4^(-0) P5^( 0)

Pi group 1, Pi 1 is: P0^( 1) P1^( 0) P2^(-1) P3^(-2) P4^(-2) P5^(-2)




16 changes: 8 additions & 8 deletions applications/newton/llvm-ir/c-files/MadgwickAHRSfix.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,14 @@ volatile bmx055xAcceleration beta = (uint8_t)(betaDef*FRAC_BASE); //0.1f // 2
int32_t
mulfix(int32_t x, int32_t y)
{
int32_t result;
int64_t temp;
temp = (int64_t)x * (int64_t)y;
temp += K;
result = round(temp/FRAC_BASE);
return result;
// int32_t result;
// int64_t temp;
// temp = (int64_t)x * (int64_t)y;
// temp += K;
// result = round(temp/FRAC_BASE);
// return result;
// return ((int64_t)(x*y)) > 0 ? ((int64_t)(x*y))>>FRAC_Q : (((int64_t)(x*y))>>FRAC_Q)+1;
// return ((int64_t)x*y)/FRAC_BASE;
return ((int64_t)x*y)/FRAC_BASE;
}

/*
Expand All @@ -74,7 +74,7 @@ sqrt_rsqrt(int32_t x, int recip) {
i = 0x5f3759df - (i>>1);
fp_y = *(float*)&i;
fp_y = fp_y * (1.5f - (halfx * fp_y * fp_y));
return round(fp_y*FRAC_BASE);
return fp_y*FRAC_BASE;
} else {
int32_t res = (int32_t)sqrtf(x)<<(FRAC_Q/2);
if (FRAC_Q%2)
Expand Down

0 comments on commit ff056d4

Please sign in to comment.