From fa41c98f6aa82d9de65413126f15507e6124fac9 Mon Sep 17 00:00:00 2001 From: hgn Date: Sat, 12 Jul 2025 19:19:32 +0100 Subject: [PATCH] ignore this 2 --- build.c | 2 ++ temp.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/build.c b/build.c index 9d442f2..bedb1e0 100644 --- a/build.c +++ b/build.c @@ -507,12 +507,14 @@ void s_dbtest_build(void) } #include "vg/vg_mem_pool.c" +#include "vg_kv.c" int main( int argc, const char *argv[] ) { vg_log_init(); _vg_opt_init( argc, argv ); + const char *arg; if( (arg = vg_long_opt_arg( "glsl-dir", "Specify output directory for preprocessed GLSL" )) ) diff --git a/temp.c b/temp.c index 81403b8..552841a 100644 --- a/temp.c +++ b/temp.c @@ -47,3 +47,55 @@ return 0; #endif + + + + + + + + + + + f64 std_worst_error = 0.0, + vg_worst_error = 0.0; + + u32 dps = 6; + + vg_rand rando; + vg_rand_seed( &rando, 92323 ); + for( u32 i=0; i<100000; i ++ ) + { + f64 number = (vg_randf64( &rando )*2.0-1.0)*1231773.443334311; + + char std_buf[ 256 ]; + snprintf( std_buf, 64, "%.*f", dps, number ); + f64 std_readback_number = atof( std_buf ); + f64 std_err = std_readback_number - number; + if( fabs(std_err) > fabs(std_worst_error) ) + std_worst_error = std_err; + + /* VG's turn */ + char vg_buf[ 256 ]; + vg_str str; + vg_strnull( &str, vg_buf, sizeof(vg_buf) ); + vg_strcatf64( &str, number, 10, dps ); + + f64 vg_readback_number; + vg_strp strp = { .buffer = vg_buf }; + vg_strp_f64( &strp, &vg_readback_number ); + + f64 vg_err = vg_readback_number - number; + if( fabs(vg_err) > fabs(vg_worst_error) ) + vg_worst_error = vg_err; + + + vg_strnull( &str, vg_buf, sizeof(vg_buf) ); + vg_strcatf64( &str, number, 30, dps ); + puts( vg_buf ); + } + + printf( "worst error (vgstrp): %.20f\n", vg_worst_error ); + printf( "worst error (std): %.20f\n", std_worst_error ); + + return 0; -- 2.25.1