kann es sein, dass die Tangensfunktion in Pas2JS absichtlich weggelassen wurde
Pas2JS: Es gibt keine tan(x) - Funktion?
- Niesi
- Lazarusforum e. V.
- Beiträge: 645
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.5 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
- Kontaktdaten:
Pas2JS: Es gibt keine tan(x) - Funktion?
Hallo,
kann es sein, dass die Tangensfunktion in Pas2JS absichtlich weggelassen wurde
oder ist es ein Bug? 
kann es sein, dass die Tangensfunktion in Pas2JS absichtlich weggelassen wurde
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
-
Linkat
- Lazarusforum e. V.
- Beiträge: 571
- Registriert: So 10. Sep 2006, 23:24
- OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.2 FPC 3.2.2; RaspiOS
- CPU-Target: AMD 64, ARM 64
- Wohnort: nr Stuttgart
Re: Pas2JS: Es gibt keine tan(x) - Funktion?
tan kann durch sind und cos bestimmt werden.
Es gilt:
Gruß, Linkat
Es gilt:
tan(Alpha)=sin(Alpha)÷cos(Alpha)
Gruß, Linkat
Linux Mint 22.1; Lazarus 4.2 FPC 3.2.2; RaspiOS
- Niesi
- Lazarusforum e. V.
- Beiträge: 645
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.5 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
- Kontaktdaten:
Re: Pas2JS: Es gibt keine tan(x) - Funktion?
Danke für die Antwort, das ist mir bekannt.Linkat hat geschrieben: Mo 8. Jan 2024, 11:25 tan kann durch sind und cos bestimmt werden.
Es gilt:tan(Alpha)=sin(Alpha)÷cos(Alpha)
Gruß, Linkat
Es geht mir aber vor allem darum, dass auch Pas2JS vollständig sein sollte. In der System.pas von Pas2JS sind ArcTan(x), ArcTan2(x) definiert, in der Math.pas von Pas2JS ist z.B. der ArcTanH(x) definiert. Aber kein Tan(x). Das ist einfach Mist, wenn - so wie gerade eben bei mir - Units aus anderen Projekten übernommen werden. Die laufen dann auf ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
-
Linkat
- Lazarusforum e. V.
- Beiträge: 571
- Registriert: So 10. Sep 2006, 23:24
- OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.2 FPC 3.2.2; RaspiOS
- CPU-Target: AMD 64, ARM 64
- Wohnort: nr Stuttgart
Re: Pas2JS: Es gibt keine tan(x) - Funktion?
Das ist natürlich verständlich.
Linux Mint 22.1; Lazarus 4.2 FPC 3.2.2; RaspiOS
-
Mathias
- Beiträge: 7140
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Pas2JS: Es gibt keine tan(x) - Funktion?
Man kann die Funktion relativ einfach ergänzen:
Man könnte mal hier durchgucken, was alles von der javascript Math zur Verfügung gestellt wird und die fehlenden Funktionen ergänzen und einen Features Report durchgeben.
Wen man dies Pfannenfertig machen würde, wäre der Coder der unit Math sicher noch dankbar.
Code: Alles auswählen
uses
JS, Classes, SysUtils, Web, browserconsole;
function Tan(const A : Double): Double; external name 'Math.tan';
begin
Writeln(tan(1));
Wen man dies Pfannenfertig machen würde, wäre der Coder der unit Math sicher noch dankbar.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- Niesi
- Lazarusforum e. V.
- Beiträge: 645
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.5 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
- Kontaktdaten:
Re: Pas2JS: Es gibt keine tan(x) - Funktion?
Also mir ist es nicht gelungen, die Quelltexte zu den einzelnen Funktionen zu fineden - daher ist das mit Ergänzen nicht so easy. Und wie sollten alle gemeinsam zusehen, dass auch die Pas2JS den ganzen Sprachumfang von Pascal / Objectpascal bietet. Für Beginnende ist das sonst schon eine Abschreckung, wenn da elementare Sachen fehlen.Mathias hat geschrieben: Mo 8. Jan 2024, 17:22 Man kann die Funktion relativ einfach ergänzen:Man könnte mal hier durchgucken, was alles von der javascript Math zur Verfügung gestellt wird und die fehlenden Funktionen ergänzen und einen Features Report durchgeben.Code: Alles auswählen
uses JS, Classes, SysUtils, Web, browserconsole; function Tan(const A : Double): Double; external name 'Math.tan'; begin Writeln(tan(1));
Wen man dies Pfannenfertig machen würde, wäre der Coder der unit Math sicher noch dankbar.
Ich selbst habe mir eine "mathhelp.pas" erstellt und die Funktion tan(x: extended): extended; da definiert. Die kann ich dann wieder wegtunn, wenn das korrigiert ist. Aber Neulinge ... ???
Das wir die Bugs mal sammeln und dann möglichst gut dokumentiert einreichen ist eine gute Idee
Letzte Woche hatte ich das mit der procedure ShowMessageFmt als Bug gemeldet, Du hast auch'n Bug gemeldet und so würde sich das sonst anhäufen - besser, wir machen das mal komplett, denke ich.
Und hey: ich will hier auf keinen Fall meckern oder rumkritisieren - ich finde die Pas2JS wirklich PHANTASTISCH
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
-
Mathias
- Beiträge: 7140
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Pas2JS: Es gibt keine tan(x) - Funktion?
Ich würde es besser finden, jeden Bug einzeln einzureichen. So kann man wen etwas verbessert ist den Issues auf closed stellen.Das wir die Bugs mal sammeln und dann möglichst gut dokumentiert einreichen ist eine gute Idee, ich bin dabei.
Ich meine natürlich nicht, das man jede vergessen Math-Funktione einzel listet.
Hier sind alle gelistet:Also mir ist es nicht gelungen, die Quelltexte zu den einzelnen Funktionen zu fineden - daher ist das mit Ergänzen nicht so easy.
https://developer.mozilla.org/en-US/doc ... dLocale=de
Daher konnte ich auch so in der Schnelle die external function hinzufügen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- Niesi
- Lazarusforum e. V.
- Beiträge: 645
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.5 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
- Kontaktdaten:
Re: Pas2JS: Es gibt keine tan(x) - Funktion?
Es fehlen einige trigonometrische Funktionen im Pas2JS.
Weiß jemand, wie ich mir die selbst ergänzen kann? Oder sollte ich das als Bug melden?
Es ist sehr lästig, wenn große Units mit Pas2JS transpiliert werden sollen und es dann an Standarfunktionen des FPC hängenbleibt - für Neulinge sicher sehr abschreckend ...
Weiß jemand, wie ich mir die selbst ergänzen kann? Oder sollte ich das als Bug melden?
Es ist sehr lästig, wenn große Units mit Pas2JS transpiliert werden sollen und es dann an Standarfunktionen des FPC hängenbleibt - für Neulinge sicher sehr abschreckend ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
-
Mathias
- Beiträge: 7140
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Pas2JS: Es gibt keine tan(x) - Funktion?
Meine Idee, wen man Zeit und Lust hat, mit dem Link von der math.js schauen,was was alles fehlt.Weiß jemand, wie ich mir die selbst ergänzen kann? Oder sollte ich das als Bug melden?
Und dann wie diese Tan-Beispiel alles ergänzen.
Code: Alles auswählen
function Tan(const A : Double): Double; external name 'Math.tan';Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
Mathias
- Beiträge: 7140
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Pas2JS: Es gibt keine tan(x) - Funktion?
Ich habe es unterdessen durchgeguckt und bin auf folgende fehlenden Funktionen gekommen.
Wobei cbrt und clz32 in der normalen Unit Math auch nicht vorkommen. Die habe ich einfach noch in der math lib von JavaScript gefunden.
Ich denke, jetzt wäre es ein Report wert, oder habe ich noch was vergessen ?
Wobei cbrt und clz32 in der normalen Unit Math auch nicht vorkommen. Die habe ich einfach noch in der math lib von JavaScript gefunden.
Code: Alles auswählen
function Tan(const A : Double): Double; external name 'Math.tan';
function ArcTan(const A : Double): Double; external name 'Math.atan';
function ArcTan2(const y, x : Double): Double; external name 'Math.atan2';
function ArcTanh(const A : Double): Double; external name 'Math.atanh';
// evtl.
function cbrt(const A : Double): Double; external name 'Math.cbrt';
function clz32(const A : Double): Double; external name 'Math.clz32'; Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
Mathias
- Beiträge: 7140
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Pas2JS: Es gibt keine tan(x) - Funktion?
Habe es gerade in den Bug-Report gestellt:
https://gitlab.com/freepascal.org/fpc/p ... sues/39277
https://gitlab.com/freepascal.org/fpc/p ... sues/39277
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- Niesi
- Lazarusforum e. V.
- Beiträge: 645
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.5 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
- Kontaktdaten:
Re: Pas2JS: Es gibt keine tan(x) - Funktion?
Ich habe mal einen Kommentar hinzugefügt, ArcCos und Cot fehlen auch - Sorry, da war ich nicht schnell genug.
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
-
Mathias
- Beiträge: 7140
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Pas2JS: Es gibt keine tan(x) - Funktion?
ArcCos ist schon vorhanden.Niesi hat geschrieben: Di 16. Jan 2024, 11:14 Ich habe mal einen Kommentar hinzugefügt, ArcCos und Cot fehlen auch - Sorry, da war ich nicht schnell genug.
Cot habe ich nicht gelistet, weil es dies bei javascript math auch nicht gibt, ich habe nur solches ergänzt, welches es in javascript auch gibt.
Hier gibt es sogar eine Erklärung, wieso es cot nicht gibt.
https://mathjs.org/docs/reference/functions/cot.html
Aber in der FPC-Math, dort gibt es cot/cotan. In dieser Unit gibt es sicher noch einiges, welches es in javascript nicht gibt.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- Niesi
- Lazarusforum e. V.
- Beiträge: 645
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.5 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
- Kontaktdaten:
Re: Pas2JS: Es gibt keine tan(x) - Funktion?
Ok, Danke für den Hinweis zum ArcCos - jetzt hab ich ihn auch gefunden.
Den Cot(x) gibt es - so wie ich es verstehe - in JS für Matrizen. In der "normalen" Programmierung ist er verwendbar https://mathjs.org/docs/reference/functions.html
Den Cot(x) gibt es - so wie ich es verstehe - in JS für Matrizen. In der "normalen" Programmierung ist er verwendbar https://mathjs.org/docs/reference/functions.html
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
-
Mathias
- Beiträge: 7140
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Pas2JS: Es gibt keine tan(x) - Funktion?
Der Bug ist nun behoben:
https://gitlab.com/freepascal.org/fpc/p ... 070b03ab1c
https://gitlab.com/freepascal.org/fpc/p ... 070b03ab1c
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot