Skip to content

Commit

Permalink
1.0.5: fix matrix operations and size
Browse files Browse the repository at this point in the history
  • Loading branch information
zvezdochiot committed Dec 2, 2021
1 parent 103a629 commit 872966f
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 100 deletions.
2 changes: 1 addition & 1 deletion src/helmert3d.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define VERS "1.0.4"
#define VERS "1.0.5"
#define C_AUTHOR "U. Niethammer"
#define C_YEAR "2021"
#define DEBUG 0
Expand Down
Loading

28 comments on commit 872966f

@zvezdochiot
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @dr-ni .

⚠️ Testing required. While I will keep a backup copy at GLC.ORG

@dr-ni
Copy link
Owner

@dr-ni dr-ni commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why all those massive changes?

@zvezdochiot
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @dr-ni .

Because in the original version, all arrays are assigned size N * N, where N is the number of points. And this is completely wrong. Most matrices have a work area of either N * 3 or 3 * 3. What for the rest of the memory allocated?

@dr-ni
Copy link
Owner

@dr-ni dr-ni commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is ineffective for sure, but not wrong. I'll see when I'll find time for testing

@zvezdochiot
Copy link
Collaborator Author

@zvezdochiot zvezdochiot commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @dr-ni

No. This is definitely wrong.

PS: I'm trying to "get" the test data. The silence presently.

@dr-ni
Copy link
Owner

@dr-ni dr-ni commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a bigger matrix multiplication with 0 values is like the correct allocated matrix multiplication

@zvezdochiot
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dr-ni say:

multiplication with 0

But what for?

@dr-ni
Copy link
Owner

@dr-ni dr-ni commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's for sure ineffective. Maybe I've forgotten to change this after my initial tests.
The advantage is not to test a matrix dimension mismatch every time.
So maybe it's now more false than before.

@zvezdochiot
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dr-ni , I have exactly the same opinion.

@dr-ni
Copy link
Owner

@dr-ni dr-ni commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you please revert

old:

pi@rp4-sams:~/helmert3d $ valgrind helmparms3d examples/testpoints_src.txt examples/testpoints_dest.txt 
==4230== Memcheck, a memory error detector
==4230== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==4230== Using Valgrind-3.17.0 and LibVEX; rerun with -h for copyright info
==4230== Command: helmparms3d examples/testpoints_src.txt examples/testpoints_dest.txt
==4230== 

*******************************
*      helmparms3d v1.0.4     *
*   (c) U. Niethammer 2021    *
*******************************
examples/testpoints_src.txt:
4157222.5430000001 664789.3070000000 4774952.0990000004 
4149043.3360000001 688836.4430000000 4778632.1880000001 
4172803.5109999999 690340.0780000000 4758129.7010000004 
4177148.3760000002 642997.6350000000 4760764.7999999998 
4137012.1899999999 671808.0290000000 4791128.2149999999 
4146292.7289999998 666952.8870000000 4783859.8559999997 
4138759.9019999998 702670.7380000000 4785552.1960000005 

examples/testpoints_dest.txt:
4157870.2370000002 664818.6780000000 4775416.5240000002 
4149691.0490000001 688865.7850000000 4779096.5880000005 
4173451.3539999998 690369.3750000000 4758594.0750000002 
4177796.0639999998 643026.7000000000 4761228.8990000002 
4137659.5490000001 671837.3370000001 4791592.5310000004 
4146940.2280000001 666982.1510000000 4784324.0990000004 
4139407.5060000001 702700.2270000000 4786016.6449999996 

R =
1.0000000000 0.0000048146 -0.0000043328 
-0.0000048146 1.0000000000 -0.0000048409 
0.0000043327 0.0000048409 1.0000000000 

T =
641.8804120357 68.6553412730 416.3981803656 

s = 1.0000055825 (= 5.5825217993 ppm)

Results matrix:
1.0000000000 0.0000048146 -0.0000043328 
-0.0000048146 1.0000000000 -0.0000048409 
0.0000043327 0.0000048409 1.0000000000 
641.8804120357 68.6553412730 416.3981803656 
1.0000055825
...done
==4230== 
==4230== HEAP SUMMARY:
==4230==     in use at exit: 0 bytes in 0 blocks
==4230==   total heap usage: 117 allocs, 117 frees, 39,724 bytes allocated
==4230== 
==4230== All heap blocks were freed -- no leaks are possible
==4230== 
==4230== For lists of detected and suppressed errors, rerun with: -s
==4230== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
pi@rp4-sams:~/helmert3d $

new:

==9920== Use of uninitialised value of size 4
==9920==    at 0x4006258: _dl_map_object_from_fd (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
--9920-- WARNING: Serious error when reading debug info
--9920-- When reading debug info from /usr/lib/arm-linux-gnueabihf/libc-2.28.so:
--9920-- Ignoring non-Dwarf2/3/4 block in .debug_info
--9920-- WARNING: Serious error when reading debug info
--9920-- When reading debug info from /usr/lib/arm-linux-gnueabihf/libc-2.28.so:
--9920-- Last block truncated in .debug_info; ignoring
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x400E428: _dl_map_object_deps (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400E43C: _dl_map_object_deps (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x400E808: _dl_map_object_deps (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400E838: _dl_map_object_deps (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400E870: _dl_map_object_deps (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x401B634: memcpy (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x401B638: memcpy (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x401B63C: memcpy (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x401B648: memcpy (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x401B64C: memcpy (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x401B65C: memcpy (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x401B660: memcpy (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x401B664: memcpy (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x401600C: _dl_sort_maps (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x401602C: _dl_sort_maps (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400EC04: _dl_map_object_deps (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== 
==9920== More than 100 errors detected.  Subsequent errors
==9920== will still be recorded, but in less detail than before.
==9920== Use of uninitialised value of size 4
==9920==    at 0x4003834: dl_main (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x4003848: dl_main (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4003884: dl_main (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x40038B4: dl_main (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4003910: dl_main (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4011418: _dl_check_map_versions (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4011434: _dl_check_map_versions (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x401144C: _dl_check_map_versions (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x401185C: _dl_check_map_versions (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x40118D0: _dl_check_map_versions (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x401194C: _dl_check_map_versions (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x40010B0: init_tls (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x40010DC: init_tls (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x4012B40: _dl_determine_tlsoffset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012B44: _dl_determine_tlsoffset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012B50: _dl_determine_tlsoffset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012B5C: _dl_determine_tlsoffset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012C50: _dl_determine_tlsoffset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x4018018: malloc (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x4012D68: _dl_allocate_tls_storage (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x401BAB4: __udivsi3 (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x401B540: memset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x401B548: memset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x401B560: memset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x401B560: memset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x401B568: memset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x401B570: memset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x401B578: memset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x401B57C: memset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x401B588: memset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x401B590: memset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x401B598: memset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x401B5A0: memset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x401B5A4: memset (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012D94: _dl_allocate_tls_storage (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x4012700: allocate_dtv (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012700: allocate_dtv (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012704: allocate_dtv (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x4012DA4: _dl_allocate_tls_storage (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x4001104: init_tls (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400110C: init_tls (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Syscall param set_tls(addr) contains uninitialised byte(s)
==9920==    at 0x4001120: init_tls (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4003CB0: dl_main (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4003CB8: dl_main (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400CA48: _dl_relocate_object (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x400A6DC: _dl_lookup_symbol_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400A6F4: _dl_lookup_symbol_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009C50: do_lookup_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x4009C24: do_lookup_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009C28: do_lookup_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x4009C5C: do_lookup_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009C78: do_lookup_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009BA0: do_lookup_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009BAC: do_lookup_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009BE0: do_lookup_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009E1C: do_lookup_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009E2C: do_lookup_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009E84: do_lookup_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x40099F4: check_match (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x40099F8: check_match (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009A0C: check_match (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009A14: check_match (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009A24: check_match (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009AC8: check_match (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009ACC: check_match (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400A7B8: _dl_lookup_symbol_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400A7C8: _dl_lookup_symbol_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400CBC0: _dl_relocate_object (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400CC74: _dl_relocate_object (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400A738: _dl_lookup_symbol_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4011004: _dl_name_match_p (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4011018: _dl_name_match_p (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4013448: _dl_add_to_slotinfo (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4013468: _dl_add_to_slotinfo (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400D8F0: _dl_relocate_object (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009C6C: do_lookup_x (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x4012DE4: _dl_allocate_tls_init (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012DEC: _dl_allocate_tls_init (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012DF4: _dl_allocate_tls_init (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012E3C: _dl_allocate_tls_init (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012E68: _dl_allocate_tls_init (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012E74: _dl_allocate_tls_init (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012EA8: _dl_allocate_tls_init (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012ED4: _dl_allocate_tls_init (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012EF8: _dl_allocate_tls_init (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4012F54: _dl_allocate_tls_init (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4010400: _dl_init (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400FA2C: _dl_fixup (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x400FAB8: _dl_fixup (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x400FAB8: _dl_fixup (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4015B74: _dl_runtime_resolve (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 

*******************************
*      helmparms3d v1.0.5     *
==9920== Use of uninitialised value of size 4
==9920==    at 0x496D3BC: fprintf (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
*   (c) U. Niethammer 2021    *
==9920== Use of uninitialised value of size 4
==9920==    at 0x49823D8: fwrite (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
*******************************
==9920== Use of uninitialised value of size 4
==9920==    at 0x4009A30: check_match (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x49980CC: malloc (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4981544: fgets (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x499BFFC: strcmp (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4998814: free (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x485E0F8: ??? (in /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4981890: fopen@@GLIBC_2.4 (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4980BE4: fclose@@GLIBC_2.4 (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x499904C: calloc (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x497EDB0: __isoc99_sscanf (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
examples/testpoints_src.txt:
4157222.5430000001 664789.3070000000 4774952.0990000004 
==9920== Use of uninitialised value of size 4
==9920==    at 0x498A000: fputc (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
4149043.3360000001 688836.4430000000 4778632.1880000001 
4172803.5109999999 690340.0780000000 4758129.7010000004 
4177148.3760000002 642997.6350000000 4760764.7999999998 
4137012.1899999999 671808.0290000000 4791128.2149999999 
4146292.7289999998 666952.8870000000 4783859.8559999997 
4138759.9019999998 702670.7380000000 4785552.1960000005 

==9920== Use of uninitialised value of size 4
==9920==    at 0x496D420: printf (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
examples/testpoints_dest.txt:
4157870.2370000002 664818.6780000000 4775416.5240000002 
4149691.0490000001 688865.7850000000 4779096.5880000005 
4173451.3539999998 690369.3750000000 4758594.0750000002 
4177796.0639999998 643026.7000000000 4761228.8990000002 
4137659.5490000001 671837.3370000001 4791592.5310000004 
4146940.2280000001 666982.1510000000 4784324.0990000004 
4139407.5060000001 702700.2270000000 4786016.6449999996 

R =
1.0000000000 0.0000048146 -0.0000043328 
-0.0000048146 1.0000000000 -0.0000048409 
0.0000043327 0.0000048409 1.0000000000 

T =
641.8804120357 68.6553412730 416.3981803656 

s = 1.0000055825 (= 5.5825217993 ppm)

Results matrix:
1.0000000000 0.0000048146 -0.0000043328 
-0.0000048146 1.0000000000 -0.0000048409 
0.0000043327 0.0000048409 1.0000000000 
641.8804120357 68.6553412730 416.3981803656 
1.0000055825
...done
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x40105FC: _dl_fini (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x40161A0: _dl_sort_maps (in /usr/lib/arm-linux-gnueabihf/ld-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4A3F040: free_mem (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
==9920== Conditional jump or move depends on uninitialised value(s)
==9920==    at 0x4A3F0C0: free_mem (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
==9920== Use of uninitialised value of size 4
==9920==    at 0x4A3EF54: free_slotinfo (in /usr/lib/arm-linux-gnueabihf/libc-2.28.so)
==9920== 
==9920== 
==9920== HEAP SUMMARY:
==9920==     in use at exit: 0 bytes in 0 blocks
==9920==   total heap usage: 85 allocs, 85 frees, 28,332 bytes allocated
==9920== 
==9920== All heap blocks were freed -- no leaks are possible
==9920== 
==9920== For counts of detected and suppressed errors, rerun with: -v
==9920== Use --track-origins=yes to see where uninitialised values come from
==9920== ERROR SUMMARY: 7358 errors from 210 contexts (suppressed: 99 from 1)
pi@rp4:~/helmert3d 

@zvezdochiot
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dr-ni , ok.

@dr-ni
Copy link
Owner

@dr-ni dr-ni commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's actually better to leave it like it is because so many tests have been already made.
It's better to check huge data sets if it's consuming an unacceptable amount of memory.

@zvezdochiot
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dr-ni , you're a liar.

1.0.4:

valgrind ./helmparms3d examples/testpoints_src.txt examples/testpoints_dest.txt
==10164== Memcheck, a memory error detector
==10164== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==10164== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
==10164== Command: ./helmparms3d examples/testpoints_src.txt examples/testpoints_dest.txt
==10164== 

*******************************
*      helmparms3d v1.0.4     *
*   (c) U. Niethammer 2021    *
*******************************
examples/testpoints_src.txt:
4157222.5430000001 664789.3070000000 4774952.0990000004 
4149043.3360000001 688836.4430000000 4778632.1880000001 
4172803.5109999999 690340.0780000000 4758129.7010000004 
4177148.3760000002 642997.6350000000 4760764.7999999998 
4137012.1899999999 671808.0290000000 4791128.2149999999 
4146292.7289999998 666952.8870000000 4783859.8559999997 
4138759.9019999998 702670.7380000000 4785552.1960000005 

examples/testpoints_dest.txt:
4157870.2370000002 664818.6780000000 4775416.5240000002 
4149691.0490000001 688865.7850000000 4779096.5880000005 
4173451.3539999998 690369.3750000000 4758594.0750000002 
4177796.0639999998 643026.7000000000 4761228.8990000002 
4137659.5490000001 671837.3370000001 4791592.5310000004 
4146940.2280000001 666982.1510000000 4784324.0990000004 
4139407.5060000001 702700.2270000000 4786016.6449999996 

R =
1.0000000000 0.0000048146 -0.0000043328 
-0.0000048146 1.0000000000 -0.0000048409 
0.0000043327 0.0000048409 1.0000000000 

T =
641.8804120357 68.6553412730 416.3981803656 

s = 1.0000055825 (= 5.5825217993 ppm)

Results matrix:
1.0000000000 0.0000048146 -0.0000043328 
-0.0000048146 1.0000000000 -0.0000048409 
0.0000043327 0.0000048409 1.0000000000 
641.8804120357 68.6553412730 416.3981803656 
1.0000055825
...done
==10164== 
==10164== HEAP SUMMARY:
==10164==     in use at exit: 0 bytes in 0 blocks
==10164==   total heap usage: 117 allocs, 117 frees, 60,952 bytes allocated
==10164== 
==10164== All heap blocks were freed -- no leaks are possible
==10164== 
==10164== For lists of detected and suppressed errors, rerun with: -s
==10164== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

1.0.5:

valgrind ./helmparms3d examples/testpoints_src.txt examples/testpoints_dest.txt
==10222== Memcheck, a memory error detector
==10222== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==10222== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
==10222== Command: ./helmparms3d examples/testpoints_src.txt examples/testpoints_dest.txt
==10222== 

*******************************
*      helmparms3d v1.0.5     *
*   (c) U. Niethammer 2021    *
*******************************
examples/testpoints_src.txt:
4157222.5430000001 664789.3070000000 4774952.0990000004 
4149043.3360000001 688836.4430000000 4778632.1880000001 
4172803.5109999999 690340.0780000000 4758129.7010000004 
4177148.3760000002 642997.6350000000 4760764.7999999998 
4137012.1899999999 671808.0290000000 4791128.2149999999 
4146292.7289999998 666952.8870000000 4783859.8559999997 
4138759.9019999998 702670.7380000000 4785552.1960000005 

examples/testpoints_dest.txt:
4157870.2370000002 664818.6780000000 4775416.5240000002 
4149691.0490000001 688865.7850000000 4779096.5880000005 
4173451.3539999998 690369.3750000000 4758594.0750000002 
4177796.0639999998 643026.7000000000 4761228.8990000002 
4137659.5490000001 671837.3370000001 4791592.5310000004 
4146940.2280000001 666982.1510000000 4784324.0990000004 
4139407.5060000001 702700.2270000000 4786016.6449999996 

R =
1.0000000000 0.0000048146 -0.0000043328 
-0.0000048146 1.0000000000 -0.0000048409 
0.0000043327 0.0000048409 1.0000000000 

T =
641.8804120357 68.6553412730 416.3981803656 

s = 1.0000055825 (= 5.5825217993 ppm)

Results matrix:
1.0000000000 0.0000048146 -0.0000043328 
-0.0000048146 1.0000000000 -0.0000048409 
0.0000043327 0.0000048409 1.0000000000 
641.8804120357 68.6553412730 416.3981803656 
1.0000055825
...done
==10222== 
==10222== HEAP SUMMARY:
==10222==     in use at exit: 0 bytes in 0 blocks
==10222==   total heap usage: 85 allocs, 85 frees, 38,168 bytes allocated
==10222== 
==10222== All heap blocks were freed -- no leaks are possible
==10222== 
==10222== For lists of detected and suppressed errors, rerun with: -s
==10222== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

@dr-ni
Copy link
Owner

@dr-ni dr-ni commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dr-ni , you're a liar.
👎

hmm maybe on Raspberry there are some issues with valgrind
I've made sthe tests on different machines

I'll test it now on the same hardware

@dr-ni
Copy link
Owner

@dr-ni dr-ni commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pi@rp4-sams:~/helmert3d-o $ valgrind helmparms3d examples/testpoints_src.txt examples/testpoints_dest.txt
==6191== Memcheck, a memory error detector
==6191== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==6191== Using Valgrind-3.17.0 and LibVEX; rerun with -h for copyright info
==6191== Command: helmparms3d examples/testpoints_src.txt examples/testpoints_dest.txt
==6191==

*******************************
*      helmparms3d v1.0.5     *
*   (c) U. Niethammer 2021    *
*******************************
examples/testpoints_src.txt:
4157222.5430000001 664789.3070000000 4774952.0990000004 
4149043.3360000001 688836.4430000000 4778632.1880000001 
4172803.5109999999 690340.0780000000 4758129.7010000004 
4177148.3760000002 642997.6350000000 4760764.7999999998 
4137012.1899999999 671808.0290000000 4791128.2149999999 
4146292.7289999998 666952.8870000000 4783859.8559999997 
4138759.9019999998 702670.7380000000 4785552.1960000005 

examples/testpoints_dest.txt:
4157870.2370000002 664818.6780000000 4775416.5240000002 
4149691.0490000001 688865.7850000000 4779096.5880000005 
4173451.3539999998 690369.3750000000 4758594.0750000002 
4177796.0639999998 643026.7000000000 4761228.8990000002 
4137659.5490000001 671837.3370000001 4791592.5310000004 
4146940.2280000001 666982.1510000000 4784324.0990000004 
4139407.5060000001 702700.2270000000 4786016.6449999996 

R =
1.0000000000 0.0000048146 -0.0000043328 
-0.0000048146 1.0000000000 -0.0000048409 
0.0000043327 0.0000048409 1.0000000000 

T =
641.8804120357 68.6553412730 416.3981803656 

s = 1.0000055825 (= 5.5825217993 ppm)

Results matrix:
1.0000000000 0.0000048146 -0.0000043328 
-0.0000048146 1.0000000000 -0.0000048409 
0.0000043327 0.0000048409 1.0000000000 
641.8804120357 68.6553412730 416.3981803656 
1.0000055825
...done
==6191== 
==6191== HEAP SUMMARY:
==6191==     in use at exit: 0 bytes in 0 blocks
==6191==   total heap usage: 85 allocs, 85 frees, 28,332 bytes allocated
==6191== 
==6191== All heap blocks were freed -- no leaks are possible
==6191== 
==6191== For lists of detected and suppressed errors, rerun with: -s
==6191== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
pi@rp4-sams:~/helmert3d-o/

ok so valgrind is not working correct on my pi here

please do not reproach in the chat, that is rude (liar)

@zvezdochiot
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dr-ni
Copy link
Owner

@dr-ni dr-ni commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if you'll find some time you can also do some tests with splint
if this will pass you can merge again...
Since valgrind is ok it seems be looking good

@zvezdochiot
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dr-ni , i am now interested in something else.

splint *.c
Splint 3.1.2 --- 21 Feb 2021

helmdiff3d.c: (in function main)
helmdiff3d.c:102:9: Clauses exit with ofilename referencing local storage in
                       true branch, unqualified static storage in false branch
  The state of a variable is different depending on which branch is taken. This
  means no annotation can sensibly be applied to the storage. (Use -branchstate
  to inhibit warning)
   helmdiff3d.c:57:34: Storage ofilename becomes static
   helmdiff3d.c:57:34: Storage ofilename becomes static
helmeltrans.c:50:5: Function main defined more than once
  A function or variable is redefined. One of the declarations should use
  extern. (Use -redef to inhibit warning)
   helmdiff3d.c:139:1: Previous definition of main
helmeltrans.c: (in function main)
helmeltrans.c:88:10: Operand of ! is non-boolean (int): !strcmp(command, "xyz")
  The operand of a boolean operator is not a boolean. Use +ptrnegate to allow !
  to be used on pointers. (Use -boolops to inhibit warning)
helmeltrans.c:92:15: Operand of ! is non-boolean (int): !strcmp(command, "blh")
helmeltrans.c:126:9: Clauses exit with ofilename referencing local storage in
                        true branch, unqualified static storage in false branch
   helmeltrans.c:57:33: Storage ofilename becomes static
   helmeltrans.c:57:33: Storage ofilename becomes static
helmeltrans.c:135:5: Return value (type char *) ignored: fgets(cbuf, 256,...
  Result returned by function call is not used. If this is intended, can cast
  result to (void) to eliminate message. (Use -retvalother to inhibit warning)
helmeltrans.c:145:10: Unrecognized identifier: M_PI
  Identifier used in code has not been declared. (Use -unrecog to inhibit
  warning)
helmeltrans.c:147:10: Operand of ! is non-boolean (int):
                         !strcmp(command, "xyz")
helmeltrans.c:170:15: Operand of ! is non-boolean (int):
                         !strcmp(command, "blh")
helmert3d.c:50:5: Function main defined more than once
   helmdiff3d.c:139:1: Previous definition of main
helmert3d.c: (in function main)
helmert3d.c:112:9: Clauses exit with ofilename referencing local storage in
                      true branch, unqualified static storage in false branch
   helmert3d.c:57:41: Storage ofilename becomes static
   helmert3d.c:57:41: Storage ofilename becomes static
helmparms3d.c: (in function freematrix)
helmparms3d.c:26:14: Index of possibly null pointer u: u
  A possibly null pointer is dereferenced.  Value is either the result of a
  function which may return null (in which case, code should check it is not
  null), or a global, parameter or structure field declared with the null
  qualifier. (Use -nullderef to inhibit warning)
   helmparms3d.c:21:76: Storage u may become null
helmparms3d.c:26:14: Unallocated storage u[] passed as out parameter: u[i]
  An rvalue is used that may not be initialized to a value on some execution
  path. (Use -usedef to inhibit warning)
helmparms3d.c:26:14: Unqualified storage u[i] passed as only param: free (u[i])
  Unqualified storage is transferred in an inconsistent way. (Use
  -unqualifiedtrans to inhibit warning)
helmparms3d.c:272:5: Function main defined more than once
   helmdiff3d.c:139:1: Previous definition of main
helmparms3d.c: (in function main)
helmparms3d.c:518:9: Clauses exit with out_param_name referencing local storage
    in true branch, unqualified static storage in false branch
   helmparms3d.c:277:31: Storage out_param_name becomes static
   helmparms3d.c:277:31: Storage out_param_name becomes static
svdm.c: (in function svd)
svdm.c:72:17: Test expression for if not boolean, type double: scale
  Test expression type is not boolean. (Use -predboolothers to inhibit warning)
svdm.c:104:17: Test expression for if not boolean, type double: scale
svdm.c:139:17: Test expression for if not boolean, type double: g
svdm.c:170:13: Test expression for if not boolean, type double: g
svdm.c:204:21: Dangerous equality comparison involving double types:
                  fabs(r[l]) + anorm == anorm
  Two real (float, double, or long double) values are compared directly using
  == or != primitive. This may produce unexpected results since floating point
  representations are inexact. Instead, compare the difference to FLT_EPSILON
  or DBL_EPSILON. (Use -realcompare to inhibit warning)
svdm.c:209:21: Dangerous equality comparison involving double types:
                  fabs(d[nm]) + anorm == anorm
svdm.c:212:17: Test expression for if not boolean, type long long: flag
  Test expression type is not boolean or int. (Use -predboolint to inhibit
  warning)
svdm.c:219:25: Dangerous equality comparison involving double types:
                  fabs(f) + anorm != anorm
svdm.c:252:24: Fresh storage r not released before return
  A memory leak has been detected. Storage allocated locally is not released
  before the last reference to it is lost. (Use -mustfreefresh to inhibit
  warning)
   svdm.c:50:64: Fresh storage r created
svdm.c:289:21: Test expression for if not boolean, type double: z

Finished checking --- 26 code warnings

@dr-ni
Copy link
Owner

@dr-ni dr-ni commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what does the old version show?

@zvezdochiot
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dr-ni , that is what it shows. The new one is the same. Most warnings can be safely ignored, but you need to study it.

@dr-ni
Copy link
Owner

@dr-ni dr-ni commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is this?
Hi dr-ni,

Your invitation to the Geo Linux Calculations organization on GitHub has been canceled. Links to the invitation in previous emails will no longer work.

Thanks,
The GitHub Team

@zvezdochiot
Copy link
Collaborator Author

@zvezdochiot zvezdochiot commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes @dr-ni , i changed my mind. No more invitations will come. Do not mind it.

@dr-ni
Copy link
Owner

@dr-ni dr-ni commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what do you mean?
shall I invite you again?

@zvezdochiot
Copy link
Collaborator Author

@zvezdochiot zvezdochiot commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, @dr-ni . Your invitations have nothing to do with it. These were my invitations of GLC.ORG.

@dr-ni
Copy link
Owner

@dr-ni dr-ni commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah ok,
if splint is the same for both I think we can merge again
can you see a difference in memory usage?

@zvezdochiot
Copy link
Collaborator Author

@zvezdochiot zvezdochiot commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dr-ni , with such minor data, it is impossible to see some difference. But so far no one has sent any significant projects. If you have a forum on which you can ask these projects, do it.

Ask: NameTool - XYZsource - XYZdestination - XYZtrans - XYZcalculation

@dr-ni
Copy link
Owner

@dr-ni dr-ni commented on 872966f Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's merge again we'll see if there is an issue, soon, I think

@zvezdochiot
Copy link
Collaborator Author

@zvezdochiot zvezdochiot commented on 872966f Dec 3, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dr-ni , i can just restore the commit. Borrow it from GLC.ORG. But is it worth it?

Please sign in to comment.