GNAW 1.1 - Command-line Calculator (skriv vad ni tycker)

Permalänk

GNAW 1.1 - Command-line Calculator (skriv vad ni tycker)

Hej!

Som en del av er kanske kommer ihåg så hade jag en gammal tråd om den första betaversionen av GNAW här på forumet. Nyss har jag blivit klar med version 1.1 och det känns äntligen som om det kan kallas "färdigt". Nu vill jag naturligtvis veta vad ni tycker.

Windowsversionen är lite annorlunda, främst för att Windows inte stöder GNU Readline Library. Men å andra sidan så verkar cmd.exe ha innbyggda funktioner för de saker som GNAW använder det till som fungerar liknande ändå. Skillnaden för användaren är liten med andra ord.

Det finns en färdigkompilerad win32-binär samt källkod för både win32 och *NIX. Jag tror (hoppas) att det ska fungera på alla *NIX-plattformar. Linux och SunOS 5.9 har jag testat på än så länge och där fungerar det fint. Om ni vill testa på lite "udda" plattformar så är det välkommet.

Filerna och mer information hittar ni här: http://gnaw.sourceforge.net/

Permalänk
Medlem

Bra jobbat!

Men du har inte tänkt på att lägga in så den räknar ut exakt eller med ställbart antal decimalers/bitars noggranhet, t ex med GNU Bignum Library?

Just nu blir:

> (pi/10000000000000000+1)*10000000000000000-10000000000000000 ans = 2

Men om man kör med t ex powercalc.exe (medföljer MS Powertoys XP) i "Low Precision (32)":

(pi/10000000000000000+1)*10000000000000000-10000000000000000 3.1415926535897932384626433833115

Nu var detta ett extremfall och för "vardagligt bruk" spelar det ingen roll, men när man programmerar och vill verifiera beräkningar och andra saker är det användbart.

Permalänk
Citat:

Ursprungligen inskrivet av madah
Bra jobbat!

Tack

Citat:

Ursprungligen inskrivet av madah
Men du har inte tänkt på att lägga in så den räknar ut exakt eller med ställbart antal decimalers/bitars noggranhet, t ex med GNU Bignum Library?

Just nu blir:

> (pi/10000000000000000+1)*10000000000000000-10000000000000000 ans = 2

Men om man kör med t ex powercalc.exe (medföljer MS Powertoys XP) i "Low Precision (32)":

(pi/10000000000000000+1)*10000000000000000-10000000000000000 3.1415926535897932384626433833115

Nu var detta ett extremfall och för "vardagligt bruk" spelar det ingen roll, men när man programmerar och vill verifiera beräkningar och andra saker är det användbart.

Jag har funderat på att använda något bignum-bibliotek och kommer antagligen att implementera det i kommande versioner. Just nu använder jag doubles vilket ger max 15 siffrors noggrannhet. jag har även funderat på en funktion som gör att man kan välja hur många siffrors noggrannhet man vill ha men slopade det eftersom det redan är på max och jag inte trodde att någon skulle vilja ha färre. Finns det intresse för det så fixar jag det naturligtvis.

Permalänk
Medlem

Det är ju alltid en avvägning hur stor noggranhet man vill ha/ge till användarna

Personligen skulle jag lägga ribban strax över någon slags implementering av stora tal...
Trots att jag helst skulle vilja att miniräknaren hade fullt algebraiskt stöd för variabler utan bestämmt värde ... ställer kanske till det hela lite, men so what ... =D
så att svaret från 2*(3+pi) blir 6+2pi, eller 2*(3+b) där b inte är bestämd blir 6+2b

Visa signatur

weeeee

Permalänk
Citat:

Ursprungligen inskrivet av mounte
Det är ju alltid en avvägning hur stor noggranhet man vill ha/ge till användarna

Personligen skulle jag lägga ribban strax över någon slags implementering av stora tal...
Trots att jag helst skulle vilja att miniräknaren hade fullt algebraiskt stöd för variabler utan bestämmt värde ... ställer kanske till det hela lite, men so what ... =D
så att svaret från 2*(3+pi) blir 6+2pi, eller 2*(3+b) där b inte är bestämd blir 6+2b

Oj, det vore något att bita i. Jag får nog skriva om stora delar av koden för att kunna åstadkomma något sådant. Det är en väldigt intressant tanke dock, jag ska klura lite på det och se om det verkar genomförbart.

Permalänk
Medlem

Äntligen en miniräknare på datorn som går att använda. Varje gång, även om de få, jag ska slå något på Windows inbygga miniräknare har jag blivit sur över något. Keep up the good work

Visa signatur

Jag vill inte diskriminera någon så jag har bestämt mig för att hata er allihopa lika mycket.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av HerrEkberg
Jag har funderat på att använda något bignum-bibliotek och kommer antagligen att implementera det i kommande versioner. Just nu använder jag doubles vilket ger max 15 siffrors noggrannhet. jag har även funderat på en funktion som gör att man kan välja hur många siffrors noggrannhet man vill ha men slopade det eftersom det redan är på max och jag inte trodde att någon skulle vilja ha färre. Finns det intresse för det så fixar jag det naturligtvis.

Så länge uträkningarna inte tar för mycket minne eller tid (vilket jag har svårt att tänka mig när det gäller en miniräknare) finns det ingen anledning att göra det med högsta möjliga precision. Det man däremot kan vilja ställa in är hur många siffror som _visas_. Oftast har man ingen nytta av se mer än kanske 3-4 siffrors noggrannhet, men man vill ju inte att själva beräkningen ska vara inexakt i sig.

Edit: Jag är tvungen att lägga till -ltermcap i makefilen (i LIBS), annars får jag länkfel, då libreadline verkar använda saker därifrån. Och man kan använda curses istället för termcap (båda tycks funka). Kör Slackware 10.0.

Visa signatur

Min dator är tuffare än din.

Permalänk
Citat:

Ursprungligen inskrivet av Stack
Så länge uträkningarna inte tar för mycket minne eller tid (vilket jag har svårt att tänka mig när det gäller en miniräknare) finns det ingen anledning att göra det med högsta möjliga precision. Det man däremot kan vilja ställa in är hur många siffror som _visas_. Oftast har man ingen nytta av se mer än kanske 3-4 siffrors noggrannhet, men man vill ju inte att själva beräkningen ska vara inexakt i sig.

Jo, det var att ändra sifforna som visas som jag tänkte på även om det kanske inte framgick i min post. Eftersom det verkar finnas åtminstone en person (;)) som tycker att det är en bra funktion så ska jag lägga till en sådan inställningsmöjlighet i nästa version. Det borde inte vara allt för svårt.

Citat:

Ursprungligen inskrivet av Stack
Edit: Jag är tvungen att lägga till -ltermcap i makefilen (i LIBS), annars får jag länkfel, då libreadline verkar använda saker därifrån. Och man kan använda curses istället för termcap (båda tycks funka). Kör Slackware 10.0.

Jag trodde att deps från saker man linkade till sköttes automatiskt, men det var tydligen fel. Det verkar väldigt krångligt att kolla deps för alla bibliotek och sedan för dessa och så vidare i all evighet. Nåväl, jag ska titta närmare på det, tack för att du uppmärksammade det.