Skip to content

Commit

Permalink
Merge Pull Request sstsimulator#1983 from hughes-c/sst-elements/hughe…
Browse files Browse the repository at this point in the history
…s/vanadis_tests

Automatically Merged using SST Pull Request AutoTester
PR Title: b'fp64 unit tests'
PR Author: hughes-c
  • Loading branch information
sst-autotester authored Nov 22, 2022
2 parents d3c1598 + 8dcdc54 commit efacb89
Show file tree
Hide file tree
Showing 4 changed files with 121 additions and 98 deletions.
115 changes: 67 additions & 48 deletions src/sst/elements/vanadis/tests/small/asm/riscv64/fp64_basic.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,78 +5,97 @@

int main()
{
uint32_t x;
float test_cases_a[NUM_TESTS] = {2.5e-6, 4.231e-11, 6.77e3, 8.98e12};
float test_cases_b[NUM_TESTS] = {1.0e-6, 4.0e-11, 6.0e3, 8.0e12};
float add_result[NUM_TESTS] = {3.49999982063e-06, 8.23099990943e-11, 12770.0000, 1.69800001126e+13};
float sub_result[NUM_TESTS] = {1.49999993937e-06, 2.30999941397e-12, 770.000000, 9.79999653888e+11};
float mul_result[NUM_TESTS] = {2.49999999001e-12, 1.69239992125e-21, 40620000.0, 7.18399962448e+25};
float div_result[NUM_TESTS] = {2.5, 1.05774998665, 1.12833333015, 1.12249994278};

register float a asm("fs2") = 2.5e-6;
register float b asm("fs3") = 1.0e-6;
register float c asm("ft0");
register float d asm("ft1");

register uint64_t i asm("a2") = 99;
register uint64_t j asm("a3") = 400;
uint32_t counter;
double test_cases_a[NUM_TESTS] = {2.5e-6, 4.231e-11, 6.77e3, 8.98e12};
double test_cases_b[NUM_TESTS] = {1.0e-6, 4.0e-11, 6.0e3, 8.0e12};
double test_cases_c[NUM_TESTS] = {-1.0, 2.0, 7.3312e1, 0.0};
double add_result[NUM_TESTS] = {3.50000000000000037101398342454E-6, 8.231e-11, 12770.0000, 1.698e+13};
double sub_result[NUM_TESTS] = {1.5000000000000002e-6, 2.3100000000000030e-12, 770.000000, 9.8e+11};
double mul_result[NUM_TESTS] = {2.5000000000000003e-12, 1.6924000000000000e-21, 4.062e+7, 7.184000e+25};
double div_result[NUM_TESTS] = {2.5000000000000004, 1.05775, 1.1283333333333334, 1.12250000};
double fma_result[NUM_TESTS] = {-1.5000000000000002e-6, 1.2462e-10, 5.0232224e+5, 8.0e12};

register double a asm("fs2");
register double b asm("fs3");
register double c asm("fs4");

register double x asm("fs0");
register double y asm("fs1");

register uint64_t i asm("s2") = 99;
register uint64_t j asm("s3") = 400;

__asm__ __volatile__ ("ADD_TEST_:");
for( x = 0; x < NUM_TESTS; ++x ) {
a = test_cases_a[x];
b = test_cases_b[x];
d = add_result[x];
__asm__ __volatile__ ("fadd.s %0, %1, %2;" : "=f"(c) : "f"(a), "f"(b) );
__asm__ __volatile__ ("fmv.x.s %0, %1;" : "=r"(i) : "f"(c) );
__asm__ __volatile__ ("fmv.x.s %0, %1;" : "=r"(j) : "f"(d) );
for( counter = 0; counter < NUM_TESTS; ++counter ) {
a = test_cases_a[counter];
b = test_cases_b[counter];
y = add_result[counter];

__asm__ __volatile__ ("fadd.d %0, %1, %2;" : "=f"(x) : "f"(a), "f"(b) );
__asm__ __volatile__ ("fmv.x.d %0, %1;" : "=r"(i) : "f"(x) );
__asm__ __volatile__ ("fmv.x.d %0, %1;" : "=r"(j) : "f"(y) );
__asm__ __volatile__ ("bne %0, %1, FAIL_;" : : "r"(i), "r"(j) );

printf("Done %e %e %e %lx %lx\n", a, b, c, i, j);
printf("Done %e %e %e -- %lx %lx\n", a, b, x, i, j);
}

__asm__ __volatile__ ("SUB_TEST_:");
for( x = 0; x < NUM_TESTS; ++x ) {
a = test_cases_a[x];
b = test_cases_b[x];
d = sub_result[x];
__asm__ __volatile__ ("fsub.s %0, %1, %2;" : "=f"(c) : "f"(a), "f"(b) );
__asm__ __volatile__ ("fmv.x.s %0, %1;" : "=r"(i) : "f"(c) );
__asm__ __volatile__ ("fmv.x.s %0, %1;" : "=r"(j) : "f"(d) );
for( counter = 0; counter < NUM_TESTS; ++counter ) {
a = test_cases_a[counter];
b = test_cases_b[counter];
y = sub_result[counter];
__asm__ __volatile__ ("fsub.d %0, %1, %2;" : "=f"(x) : "f"(a), "f"(b) );
__asm__ __volatile__ ("fmv.x.d %0, %1;" : "=r"(i) : "f"(x) );
__asm__ __volatile__ ("fmv.x.d %0, %1;" : "=r"(j) : "f"(y) );
__asm__ __volatile__ ("bne %0, %1, FAIL_;" : : "r"(i), "r"(j) );

printf("Done %e %e %e %lx %lx\n", a, b, c, i, j);
printf("Done %e %e %e -- %lx %lx\n", a, b, x, i, j);
}

__asm__ __volatile__ ("MUL_TEST_:");
for( x = 0; x < NUM_TESTS; ++x ) {
a = test_cases_a[x];
b = test_cases_b[x];
d = mul_result[x];
__asm__ __volatile__ ("fmul.s %0, %1, %2;" : "=f"(c) : "f"(a), "f"(b) );
__asm__ __volatile__ ("fmv.x.s %0, %1;" : "=r"(i) : "f"(c) );
__asm__ __volatile__ ("fmv.x.s %0, %1;" : "=r"(j) : "f"(d) );
for( counter = 0; counter < NUM_TESTS; ++counter ) {
a = test_cases_a[counter];
b = test_cases_b[counter];
y = mul_result[counter];
__asm__ __volatile__ ("fmul.d %0, %1, %2;" : "=f"(x) : "f"(a), "f"(b) );
__asm__ __volatile__ ("fmv.x.d %0, %1;" : "=r"(i) : "f"(x) );
__asm__ __volatile__ ("fmv.x.d %0, %1;" : "=r"(j) : "f"(y) );
__asm__ __volatile__ ("bne %0, %1, FAIL_;" : : "r"(i), "r"(j) );

printf("Done %e %e %e %lx %lx\n", a, b, c, i, j);
printf("Done %e %e %e -- %lx %lx\n", a, b, x, i, j);
}

__asm__ __volatile__ ("DIV_TEST_:");
for( x = 0; x < NUM_TESTS; ++x ) {
a = test_cases_a[x];
b = test_cases_b[x];
d = div_result[x];
__asm__ __volatile__ ("fdiv.s %0, %1, %2;" : "=f"(c) : "f"(a), "f"(b) );
__asm__ __volatile__ ("fmv.x.s %0, %1;" : "=r"(i) : "f"(c) );
__asm__ __volatile__ ("fmv.x.s %0, %1;" : "=r"(j) : "f"(d) );
for( counter = 0; counter < NUM_TESTS; ++counter ) {
a = test_cases_a[counter];
b = test_cases_b[counter];
y = div_result[counter];
__asm__ __volatile__ ("fdiv.d %0, %1, %2;" : "=f"(x) : "f"(a), "f"(b) );
__asm__ __volatile__ ("fmv.x.d %0, %1;" : "=r"(i) : "f"(x) );
__asm__ __volatile__ ("fmv.x.d %0, %1;" : "=r"(j) : "f"(y) );
__asm__ __volatile__ ("bne %0, %1, FAIL_;" : : "r"(i), "r"(j) );

printf("Done %e %e %e %lx %lx\n", a, b, c, i, j);
printf("Done %e %e %e -- %lx %lx\n", a, b, x, i, j);
}

__asm__ __volatile__ ("FMA_TEST_:");
for( counter = 0; counter < NUM_TESTS; ++counter ) {
a = test_cases_a[counter];
b = test_cases_b[counter];
c = test_cases_c[counter];
y = fma_result[counter];
__asm__ __volatile__ ("fmadd.d %0, %1, %2, %3;" : "=f"(x) : "f"(a), "f"(c), "f"(b) );
__asm__ __volatile__ ("fmv.x.d %0, %1;" : "=r"(i) : "f"(x) );
__asm__ __volatile__ ("fmv.x.d %0, %1;" : "=r"(j) : "f"(y) );
__asm__ __volatile__ ("bne %0, %1, FAIL_;" : : "r"(i), "r"(j) );

printf("Done %e %e %e %e -- %lx %lx\n", a, c, b, x, i, j);
}

__asm__ __volatile__ ("beq zero, zero, FINIS_;");

__asm__ __volatile__ ("FAIL_:");
printf("FAIL %e %e %e %lu %lu\n", a, b, c, i, j);
printf("FAIL %e %e %e %e -- %lx %lx\n", a, b, c, x, i, j);

__asm__ __volatile__ ("FINIS_:");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,39 @@ Auto-clock syscalls: no
No application arguments found, continuing with argc=0
WARNING: Element vanadis.dbg_VanadisCPU has slot with an invalid name: decoder%(hardware_threads)d
l2cache: No MSHR lookup latency provided (mshr_latency_cycles)...intrapolated to 3 cycles.
v0:decoder0:branch_unit.branch_cache_hit.1 : Accumulator : Sum.u64 = 65415; SumSQ.u64 = 65415; Count.u64 = 65415; Min.u64 = 1; Max.u64 = 1;
v0:decoder0:branch_unit.branch_cache_miss.1 : Accumulator : Sum.u64 = 98938; SumSQ.u64 = 98938; Count.u64 = 98938; Min.u64 = 1; Max.u64 = 1;
v0:decoder0:branch_unit.branch_cache_castout.1 : Accumulator : Sum.u64 = 20302; SumSQ.u64 = 20302; Count.u64 = 20302; Min.u64 = 1; Max.u64 = 1;
v0:decoder0.uop_cache_hit.1 : Accumulator : Sum.u64 = 1762370; SumSQ.u64 = 1762370; Count.u64 = 1762370; Min.u64 = 1; Max.u64 = 1;
v0:decoder0.predecode_cache_hit.1 : Accumulator : Sum.u64 = 150812; SumSQ.u64 = 150812; Count.u64 = 150812; Min.u64 = 1; Max.u64 = 1;
v0:decoder0.predecode_cache_miss.1 : Accumulator : Sum.u64 = 710801; SumSQ.u64 = 710801; Count.u64 = 710801; Min.u64 = 1; Max.u64 = 1;
v0:decoder0:branch_unit.branch_cache_hit.1 : Accumulator : Sum.u64 = 99826; SumSQ.u64 = 99826; Count.u64 = 99826; Min.u64 = 1; Max.u64 = 1;
v0:decoder0:branch_unit.branch_cache_miss.1 : Accumulator : Sum.u64 = 161073; SumSQ.u64 = 161073; Count.u64 = 161073; Min.u64 = 1; Max.u64 = 1;
v0:decoder0:branch_unit.branch_cache_castout.1 : Accumulator : Sum.u64 = 33557; SumSQ.u64 = 33557; Count.u64 = 33557; Min.u64 = 1; Max.u64 = 1;
v0:decoder0.uop_cache_hit.1 : Accumulator : Sum.u64 = 2994671; SumSQ.u64 = 2994671; Count.u64 = 2994671; Min.u64 = 1; Max.u64 = 1;
v0:decoder0.predecode_cache_hit.1 : Accumulator : Sum.u64 = 209114; SumSQ.u64 = 209114; Count.u64 = 209114; Min.u64 = 1; Max.u64 = 1;
v0:decoder0.predecode_cache_miss.1 : Accumulator : Sum.u64 = 848380; SumSQ.u64 = 848380; Count.u64 = 848380; Min.u64 = 1; Max.u64 = 1;
v0:decoder0.uops_generated.1 : Accumulator : Sum.u64 = 0; SumSQ.u64 = 0; Count.u64 = 0; Min.u64 = 0; Max.u64 = 0;
v0:decoder0.decode_faults.1 : Accumulator : Sum.u64 = 0; SumSQ.u64 = 0; Count.u64 = 0; Min.u64 = 0; Max.u64 = 0;
v0:decoder0.ins_bytes_loaded.1 : Accumulator : Sum.u64 = 2843204; SumSQ.u64 = 11372816; Count.u64 = 710801; Min.u64 = 4; Max.u64 = 4;
v0:decoder0.uop_delayed_rob_full.1 : Accumulator : Sum.u64 = 1018871; SumSQ.u64 = 1018871; Count.u64 = 1018871; Min.u64 = 1; Max.u64 = 1;
v0:lsq.loads_issued.1 : Accumulator : Sum.u64 = 32362; SumSQ.u64 = 32362; Count.u64 = 32362; Min.u64 = 1; Max.u64 = 1;
v0:lsq.stores_issued.1 : Accumulator : Sum.u64 = 14418; SumSQ.u64 = 14418; Count.u64 = 14418; Min.u64 = 1; Max.u64 = 1;
v0:lsq.bytes_read.1 : Accumulator : Sum.u64 = 177728; SumSQ.u64 = 1302930; Count.u64 = 30100; Min.u64 = 1; Max.u64 = 8;
v0:lsq.bytes_stored.1 : Accumulator : Sum.u64 = 88433; SumSQ.u64 = 673045; Count.u64 = 13309; Min.u64 = 1; Max.u64 = 8;
v0:lsq.fences_issued.1 : Accumulator : Sum.u64 = 162; SumSQ.u64 = 162; Count.u64 = 162; Min.u64 = 1; Max.u64 = 1;
v0:lsq.loads_executed.1 : Accumulator : Sum.u64 = 21325; SumSQ.u64 = 21325; Count.u64 = 21325; Min.u64 = 1; Max.u64 = 1;
v0:lsq.stores_executed.1 : Accumulator : Sum.u64 = 13309; SumSQ.u64 = 13309; Count.u64 = 13309; Min.u64 = 1; Max.u64 = 1;
v0:lsq.fences_executed.1 : Accumulator : Sum.u64 = 132; SumSQ.u64 = 132; Count.u64 = 132; Min.u64 = 1; Max.u64 = 1;
v0:lsq.store_buffer_entries.1 : Accumulator : Sum.u64 = 37791; SumSQ.u64 = 122081; Count.u64 = 417054; Min.u64 = 0; Max.u64 = 8;
v0:lsq.stores_in_flight.1 : Accumulator : Sum.u64 = 279975; SumSQ.u64 = 2105165; Count.u64 = 417054; Min.u64 = 0; Max.u64 = 27;
v0:lsq.loads_in_flight.1 : Accumulator : Sum.u64 = 224079; SumSQ.u64 = 584517; Count.u64 = 417054; Min.u64 = 0; Max.u64 = 14;
v0:lsq.operations_pending : Accumulator : Sum.u64 = 68760; SumSQ.u64 = 202814; Count.u64 = 417054; Min.u64 = 0; Max.u64 = 9;
v0.instructions_retired.1 : Accumulator : Sum.u64 = 145829; SumSQ.u64 = 305767; Count.u64 = 417054; Min.u64 = 0; Max.u64 = 4;
v0.instructions_decoded.1 : Accumulator : Sum.u64 = 743981; SumSQ.u64 = 4910833; Count.u64 = 417054; Min.u64 = 0; Max.u64 = 9;
v0.instructions_issued.1 : Accumulator : Sum.u64 = 252760; SumSQ.u64 = 561380; Count.u64 = 417054; Min.u64 = 0; Max.u64 = 4;
v0.loads_issued.1 : Accumulator : Sum.u64 = 32362; SumSQ.u64 = 32362; Count.u64 = 32362; Min.u64 = 1; Max.u64 = 1;
v0.stores_issued.1 : Accumulator : Sum.u64 = 14418; SumSQ.u64 = 14418; Count.u64 = 14418; Min.u64 = 1; Max.u64 = 1;
v0.branch_mispredicts.1 : Accumulator : Sum.u64 = 16041; SumSQ.u64 = 16041; Count.u64 = 16041; Min.u64 = 1; Max.u64 = 1;
v0.branches.1 : Accumulator : Sum.u64 = 31008; SumSQ.u64 = 31008; Count.u64 = 31008; Min.u64 = 1; Max.u64 = 1;
v0.cycles.1 : Accumulator : Sum.u64 = 417054; SumSQ.u64 = 417054; Count.u64 = 417054; Min.u64 = 1; Max.u64 = 1;
v0.rob_slots_in_use.1 : Accumulator : Sum.u64 = 12687797; SumSQ.u64 = 684496751; Count.u64 = 417054; Min.u64 = 0; Max.u64 = 63;
v0.rob_cleared_entries.1 : Accumulator : Sum.u64 = 598152; SumSQ.u64 = 29287398; Count.u64 = 16042; Min.u64 = 0; Max.u64 = 62;
v0.syscall-cycles.1 : Accumulator : Sum.u64 = 19; SumSQ.u64 = 19; Count.u64 = 19; Min.u64 = 1; Max.u64 = 1;
v0.phys_int_reg_in_use.1 : Accumulator : Sum.u64 = 15477405; SumSQ.u64 = 578350773; Count.u64 = 417054; Min.u64 = 34; Max.u64 = 53;
v0.phys_fp_reg_in_use.1 : Accumulator : Sum.u64 = 13349882; SumSQ.u64 = 427339376; Count.u64 = 417054; Min.u64 = 32; Max.u64 = 36;
Simulation is complete, simulated time: 181.91 us
v0:decoder0.ins_bytes_loaded.1 : Accumulator : Sum.u64 = 3393520; SumSQ.u64 = 13574080; Count.u64 = 848380; Min.u64 = 4; Max.u64 = 4;
v0:decoder0.uop_delayed_rob_full.1 : Accumulator : Sum.u64 = 1727443; SumSQ.u64 = 1727443; Count.u64 = 1727443; Min.u64 = 1; Max.u64 = 1;
v0:lsq.loads_issued.1 : Accumulator : Sum.u64 = 47679; SumSQ.u64 = 47679; Count.u64 = 47679; Min.u64 = 1; Max.u64 = 1;
v0:lsq.stores_issued.1 : Accumulator : Sum.u64 = 22609; SumSQ.u64 = 22609; Count.u64 = 22609; Min.u64 = 1; Max.u64 = 1;
v0:lsq.bytes_read.1 : Accumulator : Sum.u64 = 260994; SumSQ.u64 = 1914132; Count.u64 = 44557; Min.u64 = 1; Max.u64 = 8;
v0:lsq.bytes_stored.1 : Accumulator : Sum.u64 = 139432; SumSQ.u64 = 1058028; Count.u64 = 21132; Min.u64 = 1; Max.u64 = 8;
v0:lsq.fences_issued.1 : Accumulator : Sum.u64 = 273; SumSQ.u64 = 273; Count.u64 = 273; Min.u64 = 1; Max.u64 = 1;
v0:lsq.loads_executed.1 : Accumulator : Sum.u64 = 32081; SumSQ.u64 = 32081; Count.u64 = 32081; Min.u64 = 1; Max.u64 = 1;
v0:lsq.stores_executed.1 : Accumulator : Sum.u64 = 21132; SumSQ.u64 = 21132; Count.u64 = 21132; Min.u64 = 1; Max.u64 = 1;
v0:lsq.fences_executed.1 : Accumulator : Sum.u64 = 231; SumSQ.u64 = 231; Count.u64 = 231; Min.u64 = 1; Max.u64 = 1;
v0:lsq.store_buffer_entries.1 : Accumulator : Sum.u64 = 65210; SumSQ.u64 = 200020; Count.u64 = 612797; Min.u64 = 0; Max.u64 = 8;
v0:lsq.stores_in_flight.1 : Accumulator : Sum.u64 = 335396; SumSQ.u64 = 2161072; Count.u64 = 612797; Min.u64 = 0; Max.u64 = 27;
v0:lsq.loads_in_flight.1 : Accumulator : Sum.u64 = 322384; SumSQ.u64 = 959018; Count.u64 = 612797; Min.u64 = 0; Max.u64 = 14;
v0:lsq.operations_pending : Accumulator : Sum.u64 = 105438; SumSQ.u64 = 324950; Count.u64 = 612797; Min.u64 = 0; Max.u64 = 9;
v0.instructions_retired.1 : Accumulator : Sum.u64 = 255235; SumSQ.u64 = 532971; Count.u64 = 612797; Min.u64 = 0; Max.u64 = 4;
v0.instructions_decoded.1 : Accumulator : Sum.u64 = 1269039; SumSQ.u64 = 8481663; Count.u64 = 612797; Min.u64 = 0; Max.u64 = 9;
v0.instructions_issued.1 : Accumulator : Sum.u64 = 425934; SumSQ.u64 = 932518; Count.u64 = 612797; Min.u64 = 0; Max.u64 = 4;
v0.loads_issued.1 : Accumulator : Sum.u64 = 47679; SumSQ.u64 = 47679; Count.u64 = 47679; Min.u64 = 1; Max.u64 = 1;
v0.stores_issued.1 : Accumulator : Sum.u64 = 22609; SumSQ.u64 = 22609; Count.u64 = 22609; Min.u64 = 1; Max.u64 = 1;
v0.branch_mispredicts.1 : Accumulator : Sum.u64 = 25759; SumSQ.u64 = 25759; Count.u64 = 25759; Min.u64 = 1; Max.u64 = 1;
v0.branches.1 : Accumulator : Sum.u64 = 50619; SumSQ.u64 = 50619; Count.u64 = 50619; Min.u64 = 1; Max.u64 = 1;
v0.cycles.1 : Accumulator : Sum.u64 = 612797; SumSQ.u64 = 612797; Count.u64 = 612797; Min.u64 = 1; Max.u64 = 1;
v0.rob_slots_in_use.1 : Accumulator : Sum.u64 = 20857340; SumSQ.u64 = 1144833672; Count.u64 = 612797; Min.u64 = 0; Max.u64 = 63;
v0.rob_cleared_entries.1 : Accumulator : Sum.u64 = 1013804; SumSQ.u64 = 51083644; Count.u64 = 25760; Min.u64 = 0; Max.u64 = 62;
v0.syscall-cycles.1 : Accumulator : Sum.u64 = 23; SumSQ.u64 = 23; Count.u64 = 23; Min.u64 = 1; Max.u64 = 1;
v0.phys_int_reg_in_use.1 : Accumulator : Sum.u64 = 23480997; SumSQ.u64 = 905641165; Count.u64 = 612797; Min.u64 = 35; Max.u64 = 54;
v0.phys_fp_reg_in_use.1 : Accumulator : Sum.u64 = 20224583; SumSQ.u64 = 667489673; Count.u64 = 612797; Min.u64 = 33; Max.u64 = 38;
Simulation is complete, simulated time: 267.378 us
Empty file.
36 changes: 20 additions & 16 deletions src/sst/elements/vanadis/tests/small/asm/riscv64/fp64_basic.stdout.gold
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
Done 2.500000e-06 1.000000e-06 3.500000e-06 366ae18a 366ae18a
Done 4.231000e-11 4.000000e-11 8.231000e-11 2eb50069 2eb50069
Done 6.770000e+03 6.000000e+03 1.277000e+04 46478800 46478800
Done 8.980000e+12 8.000000e+12 1.698000e+13 5577176e 5577176e
Done 2.500000e-06 1.000000e-06 1.500000e-06 35c9539b 35c9539b
Done 4.231000e-11 4.000000e-11 2.309999e-12 2c228d40 2c228d40
Done 6.770000e+03 6.000000e+03 7.700000e+02 44408000 44408000
Done 8.980000e+12 8.000000e+12 9.799997e+11 53642c88 53642c88
Done 2.500000e-06 1.000000e-06 2.500000e-12 2c2febff 2c2febff
Done 4.231000e-11 4.000000e-11 1.692400e-21 1cffbf8d 1cffbf8d
Done 6.770000e+03 6.000000e+03 4.062000e+07 4c1af3f8 4c1af3f8
Done 8.980000e+12 8.000000e+12 7.184000e+25 6a6db2d8 6a6db2d8
Done 2.500000e-06 1.000000e-06 2.500000e+00 40200000 40200000
Done 4.231000e-11 4.000000e-11 1.057750e+00 3f87645a 3f87645a
Done 6.770000e+03 6.000000e+03 1.128333e+00 3f906d3a 3f906d3a
Done 8.980000e+12 8.000000e+12 1.122500e+00 3f8fae14 3f8fae14
Done 2.500000e-06 1.000000e-06 3.500000e-06 -- 3ecd5c31593e5fb8 3ecd5c31593e5fb8
Done 4.231000e-11 4.000000e-11 8.231000e-11 -- 3dd6a00d242d4008 3dd6a00d242d4008
Done 6.770000e+03 6.000000e+03 1.277000e+04 -- 40c8f10000000000 40c8f10000000000
Done 8.980000e+12 8.000000e+12 1.698000e+13 -- 42aee2edbc900000 42aee2edbc900000
Done 2.500000e-06 1.000000e-06 1.500000e-06 -- 3eb92a737110e455 3eb92a737110e455
Done 4.231000e-11 4.000000e-11 2.310000e-12 -- 3d8451a8567b6e60 3d8451a8567b6e60
Done 6.770000e+03 6.000000e+03 7.700000e+02 -- 4088100000000000 4088100000000000
Done 8.980000e+12 8.000000e+12 9.800000e+11 -- 426c8591a9000000 426c8591a9000000
Done 2.500000e-06 1.000000e-06 2.500000e-12 -- 3d85fd7fe1796496 3d85fd7fe1796496
Done 4.231000e-11 4.000000e-11 1.692400e-21 -- 3b9ff7f1b8f4e15e 3b9ff7f1b8f4e15e
Done 6.770000e+03 6.000000e+03 4.062000e+07 -- 41835e7f00000000 41835e7f00000000
Done 8.980000e+12 8.000000e+12 7.184000e+25 -- 454db65b1a0e8395 454db65b1a0e8395
Done 2.500000e-06 1.000000e-06 2.500000e+00 -- 4004000000000001 4004000000000001
Done 4.231000e-11 4.000000e-11 1.057750e+00 -- 3ff0ec8b43958106 3ff0ec8b43958106
Done 6.770000e+03 6.000000e+03 1.128333e+00 -- 3ff20da740da740e 3ff20da740da740e
Done 8.980000e+12 8.000000e+12 1.122500e+00 -- 3ff1f5c28f5c28f6 3ff1f5c28f5c28f6
Done 2.500000e-06 -1.000000e+00 1.000000e-06 -1.500000e-06 -- beb92a737110e455 beb92a737110e455
Done 4.231000e-11 2.000000e+00 4.000000e-11 1.246200e-10 -- 3de120ad2bcee6e3 3de120ad2bcee6e3
Done 6.770000e+03 7.331200e+01 6.000000e+03 5.023222e+05 -- 411ea8c8f5c28f5c 411ea8c8f5c28f5c
Done 8.980000e+12 0.000000e+00 8.000000e+12 8.000000e+12 -- 429d1a94a2000000 429d1a94a2000000

0 comments on commit efacb89

Please sign in to comment.