Skip to content

Commit c02b9a1

Browse files
committed
v0.11.09h 2023/12/29
* Added: - created test cases to check output consistency - improved (cross-)package creation * Fix: - LIB: save position of last single input value to correctly show solutions with 2 resistors - LIB: save numV in numF to avoid memory leak on lists=2 and bestTol=1 - LIB: can read userR2 with only one value from config file - LIB: correctly show tolerance ratio * Cosmetic - LIB: refactor showVal4(numBestRes),showVal3(numBestRes) in showVal43(numBestRes, num); - LIB: refactor showValX(),showValMemLow() moved CLI/GUI maxRp==? mem=? inside LIB showVal() - LIB: renamed 'valTolBest' to 'bestTol' in config file
1 parent 1fc1bec commit c02b9a1

21 files changed

+806
-730
lines changed

README.md

+36-19
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ userR2={ v1, v2, ..., Vm } ; user list of 'm' values @0.1%
7575
userR2tol=0.1 ; baseR2 percent tolerance: use 0.1 for 0.1% tolerance
7676
userR2desc="user list of 'm' values @0.1% tolerance" ; description max 64 chars
7777
```
78-
When valTolBest=1 and lists=2 ReSolve will discard values when:
78+
When bestTol=1 and lists=2 ReSolve will discard values when:
7979
```
8080
- series : 10*userR(1%) > userR2(0.1%)
8181
- parallel: userR(1%) < 10*userR2(0.1%)
@@ -376,8 +376,10 @@ v0.11.09h 2023/10/01
376376
- CLI: new output formatting to show tolerance of each component
377377
- CLI: use 80 columns for output formatting
378378
- GUI: enlarged to 722 pixels to accomodate 80 cols output formatting
379+
- GUI: support for lists=2 new config: userR2, userR2tol, userR2desc, valTolBest
379380
- GUI: new widgets to support lists=2, (in)activate meaning widgets
380381
- LIB: extended support to 8 decades, GUI too
382+
- LIB: print with eng/SIprefix notation with mem=0
381383
- GUI: working Stop button
382384
- LIB: reduced memory allocation/compute time for input descriptions:
383385
baseR[3+2],mem=0,lists2=2,valTolBest=0: 1.7 kB => 840 B , 0.000704 s => 0.000905 s
@@ -402,25 +404,35 @@ v0.11.09h 2023/10/01
402404
* Fix:
403405
- LIB: fix conversion to eng notation in case: -1000E-09 instead of -1E-06
404406
- LIB: parsing of reSolveConf.txt more robust for duplicates and comments
405-
- GUI: target and decades are not updated on direct type
407+
- GUI: target and decades was not updated on direct type
408+
409+
v0.11.09h 2023/12/29
410+
* Added:
411+
- created test cases to check output consistency
412+
- improved (cross-)package creation
413+
* Fix:
414+
- LIB: save position of last single input value to correctly show solutions with 2 resistors
415+
- LIB: save numV in numF to avoid memory leak on lists=2 and bestTol=1
416+
- LIB: can read userR2 with only one value from config file
417+
- LIB: correctly show tolerance ratio
418+
* Cosmetic
419+
- LIB: refactor showVal4(numBestRes),showVal3(numBestRes) in showVal43(numBestRes, num);
420+
- LIB: refactor showValX(),showValMemLow() functions moving CLI/GUI maxRp==? mem=? inside LIB
421+
- LIB: renamed 'valTolBest' to 'bestTol' in config file
406422

407423
ToDo:
408424
-----
409425
- LIB: add half/quarter Eseries: E96/4, E48/2
410426
- LIB: add custom E24 using closest E96 values
411427
- LIB: add custom E12 using closest E96 values
412428
- LIB: add hybrid Eseries: E48+E24, E96+E24, E192+E24
413-
- LIB: minValue=10 ; when !=0 skip Eserie values lesser than minValue
414-
- LIB: maxValue=0 ; when !=0 skip Eserie values greather than maxValue
429+
- LIB: maxR=100E3 ; when !=0 skip Eserie/User values greather than maxR
430+
- LIB: minR=10 ; when !=0 skip Eserie/User values smaller than minR
431+
- LIB: separate value below and over the target value
432+
- LIB: print exact results, separated by approximate results
415433
- GUI: show values read from reSolveConf.txt userR in engineering notation
416-
- GUI: support for lists=2 new config: userR2, userR2tol, userR2desc, valTolBest
417-
- LIB: print with eng/SIprefix notation with mem=0
418-
- LIB: refactor showValX() functions moving CLI/GUI mem==? and maxRp==? inside LIB
419434
- LIB: numberOfResults=0 with mem=0 meaning all
420435
- LIB: use multi-threading to speed-up calculation with multicore CPU/GPU
421-
- LIB: remove duplicated triangular solutions with MaxRp=2
422-
- LIB: print exact results, separated by approximate results
423-
- LIB: separate value below and over the target value
424436
- LIB: support for 0 Ohm value in formula denominator (division by 0)
425437
- LIB: add support for variables with an index number. Es. R1, R2
426438
- LIB: add support for variables/letters other than a-b. Autoinit values
@@ -439,6 +451,8 @@ Distribution:
439451
-------------
440452
In the tar.gz package you will find the sources GNU GPL3 license and binaries
441453
compiled for various platforms and operative systems.
454+
For Linux is also provided the cross-distro AppImage file format. $ chmod +x *.AppImage
455+
For MacOS is also provided the DMG disk file
442456
As a free software, if you redistribute or modify it, you must redistribute
443457
everytime the sources too.
444458

@@ -453,22 +467,25 @@ src/exprParser.c expression parser
453467
src/reSolveLib.c ReSolve lib implementation
454468
src/reSolveCli.c main CLI source
455469
src/reSolveGui.c main GUI source
456-
src/Makefile Makefile
470+
src/Makefile Makefile to build on Linux, MinGW/MSYS2 or MacOS
457471
src/Makefile32 Makefile to build from Linux64 to Linux32
458-
src/MakefileX Makefile to cross-build from Linux to Win64
459-
src/MakefileX32 Makefile to cross-build from Linux to Win32
460-
src/makeAppDir.sh script use to prepare distribution packages
472+
src/MakefileX Makefile to cross-build from Linux to Win64 with MXE
473+
src/MakefileX32 Makefile to cross-build from Linux to Win32 with MXE
474+
src/makePkg.sh script used to prepare distribution packages
461475
src/reSolve.desktop Linux desktop integration file
462476
src/ReSolve.png Linux icon file
463-
src/AppRun AppImage run file template
477+
src/ReSolve.ico Windows icon file
478+
src/ReSolve.icns MacOS icon file
479+
src/ReSolve.bundle MacOS packaging file
480+
src/Info.plist MacOS DMG package file
464481
reSolveLinux32 CLI binary for Linux/x86
465482
reSolveGuiLinux32 GUI binary for Linux/x86
466483
reSolveLinux64 CLI binary for Linux/amd64
467484
reSolveGuiLinux64 GUI binary for Linux/amd64
468-
reSolveWin32.exe CLI binary for Win32/x86
469-
reSolveGuiWin32.exe GUI binary for Win32/x86
470-
reSolveWin64.exe CLI binary for Win64/amd64
471-
reSolveGuiWin64.exe GUI binary for Win64/amd64
485+
reSolveWinMxe32.exe CLI binary for Win32/x86
486+
reSolveGuiWinMxe32.exe GUI binary for Win32/x86
487+
reSolveWinMxe64.exe CLI binary for Win64/amd64
488+
reSolveGuiWinMxe64.exe GUI binary for Win64/amd64
472489
circuit???.png Circuit images with example formula
473490
reSolveConf.txt Configuration file
474491
reSolve.glade GUI resource XML file

reSolveConf.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
; strings are enclosed in "", keep in one line, shorter than 78 chars
66
; vectors are {} enclosed and comma separated (space and multi lines allowed)
77
; comments follow ;
8-
; remember that command line arguments take precedence to config values
8+
; remember that command line arguments take precedence to config file values
99
; -h|--help to see command line syntax
1010

1111
expr="1.25*(1+b/a)" ; default formula. Use only 'a' and 'b' as variables
@@ -46,4 +46,4 @@ userR2={ 10, 12.1, 14.7, 17.8, 21.5, 26.1, 31.6, 38.3, 46.4, 56.2, 68.1, 82.5, 1
4646
userR2tol=0.1 ; baseR2 percent tolerance: use 0.1 for 0.1% tolerance
4747
userR2desc="user list of 77 E48/4 values @0.1%, 10-22M Ohm" ; description max 64 chars
4848

49-
valTolBest=1 ; 0 keep all values, 1 skip: serie 10*R1%>R0.1%, // R1%<10*R0.1%
49+
bestTol=1 ; 0 keep all values, 1 skip: serie 10*R1%>R0.1%, // R1%<10*R0.1%

reSolveReadme.txt

+36-19
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ userR2={ v1, v2, ..., Vm } ; user list of 'm' values @0.1%
7575
userR2tol=0.1 ; baseR2 percent tolerance: use 0.1 for 0.1% tolerance
7676
userR2desc="user list of 'm' values @0.1% tolerance" ; description max 64 chars
7777
```
78-
When valTolBest=1 and lists=2 ReSolve will discard values when:
78+
When bestTol=1 and lists=2 ReSolve will discard values when:
7979
```
8080
- series : 10*userR(1%) > userR2(0.1%)
8181
- parallel: userR(1%) < 10*userR2(0.1%)
@@ -376,8 +376,10 @@ v0.11.09h 2023/10/01
376376
- CLI: new output formatting to show tolerance of each component
377377
- CLI: use 80 columns for output formatting
378378
- GUI: enlarged to 722 pixels to accomodate 80 cols output formatting
379+
- GUI: support for lists=2 new config: userR2, userR2tol, userR2desc, valTolBest
379380
- GUI: new widgets to support lists=2, (in)activate meaning widgets
380381
- LIB: extended support to 8 decades, GUI too
382+
- LIB: print with eng/SIprefix notation with mem=0
381383
- GUI: working Stop button
382384
- LIB: reduced memory allocation/compute time for input descriptions:
383385
baseR[3+2],mem=0,lists2=2,valTolBest=0: 1.7 kB => 840 B , 0.000704 s => 0.000905 s
@@ -402,25 +404,35 @@ v0.11.09h 2023/10/01
402404
* Fix:
403405
- LIB: fix conversion to eng notation in case: -1000E-09 instead of -1E-06
404406
- LIB: parsing of reSolveConf.txt more robust for duplicates and comments
405-
- GUI: target and decades are not updated on direct type
407+
- GUI: target and decades was not updated on direct type
408+
409+
v0.11.09h 2023/12/29
410+
* Added:
411+
- created test cases to check output consistency
412+
- improved (cross-)package creation
413+
* Fix:
414+
- LIB: save position of last single input value to correctly show solutions with 2 resistors
415+
- LIB: save numV in numF to avoid memory leak on lists=2 and bestTol=1
416+
- LIB: can read userR2 with only one value from config file
417+
- LIB: correctly show tolerance ratio
418+
* Cosmetic
419+
- LIB: refactor showVal4(numBestRes),showVal3(numBestRes) in showVal43(numBestRes, num);
420+
- LIB: refactor showValX(),showValMemLow() moved CLI/GUI maxRp==? mem=? inside LIB showVal()
421+
- LIB: renamed 'valTolBest' to 'bestTol' in config file
406422

407423
ToDo:
408424
-----
409425
- LIB: add half/quarter Eseries: E96/4, E48/2
410426
- LIB: add custom E24 using closest E96 values
411427
- LIB: add custom E12 using closest E96 values
412428
- LIB: add hybrid Eseries: E48+E24, E96+E24, E192+E24
413-
- LIB: minValue=10 ; when !=0 skip Eserie values lesser than minValue
414-
- LIB: maxValue=0 ; when !=0 skip Eserie values greather than maxValue
429+
- LIB: maxR=100E3 ; when !=0 skip Eserie/User values greather than maxR
430+
- LIB: minR=10 ; when !=0 skip Eserie/User values smaller than minR
431+
- LIB: separate value below and over the target value
432+
- LIB: print exact results, separated by approximate results
415433
- GUI: show values read from reSolveConf.txt userR in engineering notation
416-
- GUI: support for lists=2 new config: userR2, userR2tol, userR2desc, valTolBest
417-
- LIB: print with eng/SIprefix notation with mem=0
418-
- LIB: refactor showValX() functions moving CLI/GUI mem==? and maxRp==? inside LIB
419434
- LIB: numberOfResults=0 with mem=0 meaning all
420435
- LIB: use multi-threading to speed-up calculation with multicore CPU/GPU
421-
- LIB: remove duplicated triangular solutions with MaxRp=2
422-
- LIB: print exact results, separated by approximate results
423-
- LIB: separate value below and over the target value
424436
- LIB: support for 0 Ohm value in formula denominator (division by 0)
425437
- LIB: add support for variables with an index number. Es. R1, R2
426438
- LIB: add support for variables/letters other than a-b. Autoinit values
@@ -439,6 +451,8 @@ Distribution:
439451
-------------
440452
In the tar.gz package you will find the sources GNU GPL3 license and binaries
441453
compiled for various platforms and operative systems.
454+
For Linux is also provided the cross-distro AppImage file format. $ chmod +x *.AppImage
455+
For MacOS is also provided the DMG disk file
442456
As a free software, if you redistribute or modify it, you must redistribute
443457
everytime the sources too.
444458

@@ -453,22 +467,25 @@ src/exprParser.c expression parser
453467
src/reSolveLib.c ReSolve lib implementation
454468
src/reSolveCli.c main CLI source
455469
src/reSolveGui.c main GUI source
456-
src/Makefile Makefile
470+
src/Makefile Makefile to build on Linux, MinGW/MSYS2 or MacOS
457471
src/Makefile32 Makefile to build from Linux64 to Linux32
458-
src/MakefileX Makefile to cross-build from Linux to Win64
459-
src/MakefileX32 Makefile to cross-build from Linux to Win32
460-
src/makeAppDir.sh script use to prepare distribution packages
472+
src/MakefileX Makefile to cross-build from Linux to Win64 with MXE
473+
src/MakefileX32 Makefile to cross-build from Linux to Win32 with MXE
474+
src/makePkg.sh script used to prepare distribution packages
461475
src/reSolve.desktop Linux desktop integration file
462476
src/ReSolve.png Linux icon file
463-
src/AppRun AppImage run file template
477+
src/ReSolve.ico Windows icon file
478+
src/ReSolve.icns MacOS icon file
479+
src/ReSolve.bundle MacOS packaging file
480+
src/Info.plist MacOS DMG package file
464481
reSolveLinux32 CLI binary for Linux/x86
465482
reSolveGuiLinux32 GUI binary for Linux/x86
466483
reSolveLinux64 CLI binary for Linux/amd64
467484
reSolveGuiLinux64 GUI binary for Linux/amd64
468-
reSolveWin32.exe CLI binary for Win32/x86
469-
reSolveGuiWin32.exe GUI binary for Win32/x86
470-
reSolveWin64.exe CLI binary for Win64/amd64
471-
reSolveGuiWin64.exe GUI binary for Win64/amd64
485+
reSolveWinMxe32.exe CLI binary for Win32/x86
486+
reSolveGuiWinMxe32.exe GUI binary for Win32/x86
487+
reSolveWinMxe64.exe CLI binary for Win64/amd64
488+
reSolveGuiWinMxe64.exe GUI binary for Win64/amd64
472489
circuit???.png Circuit images with example formula
473490
reSolveConf.txt Configuration file
474491
reSolve.glade GUI resource XML file

src/AppRun

-27
This file was deleted.

src/Info.plist

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<key>CFBundleExecutable</key>
88
<string>reSolveGuiMacOS64</string>
99
<key>CFBundleGetInfoString</key>
10-
<string>0.11.09h beta 2023/08/28, Copyright 2023 Valerio Messina</string>
10+
<string>0.11.09h beta 2023/12/29, Copyright 2023 Valerio Messina</string>
1111
<key>CFBundleIconFile</key>
1212
<string>ReSolve.icns</string>
1313
<key>CFBundleIdentifier</key>
@@ -21,7 +21,7 @@
2121
<key>CFBundleSignature</key>
2222
<string>????</string>
2323
<key>CFBundleVersion</key>
24-
<string>0.11.09h beta 2023/08/28</string>
24+
<string>0.11.09h beta 2023/12/29</string>
2525
<key>NSHumanReadableCopyright</key>
2626
<string>Copyright 2023 Valerio Messina, GNU General Public License.</string>
2727
<key>LSMinimumSystemVersion</key>

0 commit comments

Comments
 (0)