Deutsch
Forum

Was sind native Funktionen?

 
- Seite 1 -



Weil du immer noch nicht verständlich erklärt hast, was nprocs sind.


Hallo Nico,

danke für den Hinweis und den Thread hier - leider kann ich damit aber nichts anfangen da ich nicht wissen kann, was Du nicht verstehst.

Vlt. kannst Du mir unter Beachtung der Dokumentation  [...]  sagen, was Dir unklar ist.


Inline-Assembler:
 
11.11.2009  
 



 
- Seite 9 -



Frank
Abbing
iF, Beitrag=55273, Zeitpunkt=30.11.2009
In reinem ASM ja, in NProcs nicht unbedingt - also besser nicht denn der Operator würde aufgelöst was letztendlich nicht schneller sein kann als add eax,4


Hab ich nicht verstanden. Warum werden reine Assemblerzeilen denn nicht direkt übernommen?
 
30.11.2009  
 




Dietmar
Horn
Hallo zusammen,

hier mal ein kleines Demo für Noch-XPSE-Skeptiker, welches 1 Million Mal zu einer Zahl 1 addiert und deutlich den Geschwindigkeitsvorteil von nProc gegenüber reinem XProfan-Code veranschaulicht:
KompilierenMarkierenSeparieren
 {$CLEQ}
declare zeit1&,zeit2&,zeit&

nPROC ADDIEREN

    var zahl&=0

    Whileloop 1000000

        add zahl&,1

    EndWhile

    return zahl&

ENDPROC

PROC ADDIERE

    var zahl&=0

    Whileloop 1000000

        add zahl&,1

    EndWhile

    return zahl&

ENDPROC

WindowTitle " Bitte warten ... teste mit nProc von XPSE"
cls
Print ""
zeit1& = &GetTickCount
Print "Schleifendurchläufe: " + str$(ADDIEREN())
zeit2& = &GetTickCount
zeit& = zeit2& - zeit1&
print "Ausführungsgeschwindigkeit mit nProc von XPSE: " + str$(zeit&) + " Millisekunden"
WindowTitle " Bitte warten ... teste mit reinem XProfan"
Print ""
zeit1& = &GetTickCount
Print "Schleifendurchläufe: " + str$(ADDIERE())
zeit2& = &GetTickCount
zeit& = zeit2& - zeit1&
print "Ausführungsgeschwindigkeit mit reinem XProfan: " + str$(zeit&) + " Millisekunden"
SetText %HWnd,"Geschwindigkeitstest beendet!"
waitinput
end

Und das Feine daran: Man benötigt dafür keinen einzigen Assembler-Befehl.

Gruß
Dietmar

25 kB
Hochgeladen:30.11.2009
Ladeanzahl60
Herunterladen
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
30.11.2009  
 




Christian
Schneider
Beachtlich!

Installiert hab ich XPSE ja immerhin schonmal. ;)
Werde mich demnächst auf jeden Fall mal näher damit beschäftigen.

Edit: Musste beim Testen mal ein wenig "übertreiben". Macht das Ganze auf jeden Fall noch deutlicher.

10 kB
Hochgeladen:30.11.2009
Ladeanzahl102
Herunterladen
 
XProfan 11| Vista(64) SP2
30.11.2009  
 




Dietmar
Horn
Und hier für alle Noch-Nicht-Besitzer der aktuellen Vollversion XProfan 11.2a das Testprogramm als Exe-Datei zum Selberausprobieren.

Gruß
Dietmar

468 kB
Hochgeladen:30.11.2009
Ladeanzahl73
Herunterladen
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
30.11.2009  
 




Rolf
Koch
Und ich werf jetzt ganz frech hinterher: Wer meint iF wäre nur ein MACHNURSO und WILLGROSSSEIN (hatten wir in der langjährigen Profanszene schon oft), der irrt GEWALTIG. Ich bin von Natur aus ein skeptischer Mensch und hatte damals (weis iF von mir bereits, da wir immer ehrlich miteinander schreiben) auch gedacht: Nee schon wieder einer der sich grosstun will, gell iF
Aber NEIN! - Ich stehe 100000%ig hinter iF, weil a.) er menschlich, sachlich und nicht grössenwahnsinnig geworden ist b.) weil ich bei jedem Gespräch mit ihm dazulerne und c.) ich ihn eigenlich heiraten will - LOOOOOL nee Quatsch!
XPSE ist der Wahnsinn!
 
30.11.2009  
 



Werd ja komplett verlegen!
 
01.12.2009  
 



@Nico: Negative Floats-Bug ( -1.0 ) gefunden, wenn beseitigt dann Update! Danke!
 
02.12.2009  
 




Nico
Madysa
Nichts zu danken, ich habe ja auch was davon.
 
Nico Madysa
02.12.2009  
 



Update hochgeladen:  [...]  , auch nun Float als Befehl  [...]  und die Arcs ...
 
03.12.2009  
 




Nico
Madysa
Das Arc; arctan reicht wie gesagt. Bin dabei die Math.inc von Roland für NProcs umzuschreiben, da kann man dann arccos und arcsin über Ersteres definieren.
Fast wichtiger wäre allerdings die exp-Funktion und der natürliche Logarithmus ln (oder auch log). Mit denen kann man dann nämlich wieder einiges anderes ausdrücken.
 
Nico Madysa
03.12.2009  
 




Nico
Madysa
Ah, ich habe gerade gesehen, dass du mir voraus bist; im Bezug auf die Arkusfunktionen.

Hast du schon für exp etwas in petto? Die Definition die ich kenne, ist leider
1) aufwendig (zwei verschachtelte Schleifen) und
2) nur näherungsweise gültig.

Wobei mir gerade einfällt ...
KompilierenMarkierenSeparieren
proc Pow

    parameters x!,n&
    var ret! = 1

    whileloop n&

        ret! = ret! * x!

    EndWhile

    return ret!

endproc

proc fakultaet

    parameters n&
    case n& <= 1 : return 1
    return n * fakultaet(n&-1)

endproc

nproc exp  Eulersche Zahl e^x!

    parameters x!
    var e! = 0.0

    whileloop 99999 halt möglichst groß

        e! = e! + Pow(x!,&loop) / fakultaet(&loop)

    EndWhile

    return e!

endproc

 
Nico Madysa
03.12.2009  
 



In dieses "Format" muss es letztendlich gebracht werden:
KompilierenMarkierenSeparieren
Das man arccos etc ableiten kann, ist mir schon klar. Dennoch habe ich die "Formeln" nochmal optimiert und jeweils extra eine Konstante reserviert denn abgeleitete Funktionen sind deutlich langsamer als optimierter FPU-ASM und wir sind in der Funktionsanzahl nicht beschränkt.

Beispielsweise reserviere ich doch lieber einmalig global
KompilierenMarkierenSeparieren
__xeTF_00 dq 0.0
__xeTF_01 dq 1.0
__xeTF_02 dq 1.57079632679489656
__xeTF_03 dq 0.01745329251994329
__xeTF_04 dq 57.29577951308232087
als pro Funktionsaufruf jedesmal pi/180 zu rechnen.
 
03.12.2009  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

39.077 Betrachtungen

Unbenanntvor 0 min.
p.specht15.11.2018
Ernst02.07.2016
funkheld11.04.2016
HofK26.01.2016
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie