Français
Forum

Modulo arbeitet seulement avec ganzen payons

 

Sven
Bader
Pour qui Übersetzung einiger C++ Codes pour XProfan ersetze Je l' % Operator toujours par un MOD, allerdings avec inattendu Ergebnissen.
Entweder qui Eingabewerte ou bien cela Ergebnis volonté dans un Integer umgwandelt.

cela weicht de dem Comportement des C++ et dem Google calculette ab, quel aussi payons avec Dezimalstellen akzeptiert.

un Beispiel:
5.5 MOD 2 sommes 1.5 alors 2*2 reste 1.5

dans XProfan ergibt qui gleiche la facture 1.0, là entweder qui 5.5 zur 5.0 umgewandelt wird ou bien cela Ergebnis de 1.5 sur 1.0.

ici un kleines Listing zum nachvollziehen et einer Solution
Def mod(2) (!(1) - !(2) * int(!(1) / !(2)))
imprimer (5.5 MOD 2)
imprimer (5.5 MOD 2.0)
imprimer mod(5.5, 2)
waitkey
end

Übersehe je quelque chose dans XProfan, gibt es une Einestellung ou bien une anderen Operator ou bien ca va seulement avec qui Hilfsfunktion?
 
23.02.2023  
 




H.Brill
là dans qui Aider chez MOD INTEGER comme paramètre angegeben sommes,
greift là wohl (X)Profans interne automatische Typumwandlung.
cela trifft wohl sur qui Eingabeparameter comme aussi sur cela Ergebnis
trop.

mais wozu braucht on Float et MOD ?
il me faut cela au maximum, si je z.B. 10il se mettre , justement ou bien
ungerade payons aus einem Pool rausfischen veux.

chez
Imprimer (4.5 MOD 1.5)

stimmt es et alors es venez 0 raus.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
24.02.2023  
 




Sven
Bader
merci pour deine Antwort! qui Einsatz wäre doch ebenso berechtigt comment qui Division avec Floats. on voudrais savons, comment souvent une numéro dans l'autre passt ou bien plan combien après encore unverteilt übrig bleibt.

Den Ganzzahligen Divisionsrest nutze je dans qui Praxis schnelle Methode quelque chose seulement jeden x-ten Schleifendurchgang trop faire.
si (&loop MOD 2 = 0)


qui aktuelle Einsatz ist son Spezialfall, c'est qui Umwandlung de HSV dans RGB Farben. il y a là durchaus aussi solche Funktionen sans MOD mais qui Code musste très vite travailler, weshalb je es comme Einzeiler dans einer Def-Funktion brauchte.

je travaille avec Profan2Cpp et là ist, comment je plan nochmal nachgemessen habe un Proc um facteur 350 langsamer comme un Def, dans XProfan 11 liegt qui facteur chez 1,1. cela verleitet quelquefois trop ungewöhnlichen "Stunts".

Zur Lesbarkeit lasse je dans qui règle encore une Kommentar avec qui Original-Funktion im Voir le texte source mais so sieht cela Ergebnis ensuite aus
Def modu(2) (!(1) - !(2) * int(!(1) / !(2)))
def hsvToR(3) (si(((!(1) >= 60) AND (!(1) < 120)) OU ((!(1) >= 240) AND (!(1) < 300)) , (!(3) * !(2)) * (1.0 - abs( modu(!(1) / 60.0,2) - 1.0)), si(((!(1) >= 120) AND (!(1) < 240)), 0.0 , !(3) * !(2))) + (!(3) - (!(3) * !(2))))
def hsvToG(3) (si(((!(1) >= 0) AND (!(1) < 60)) OU ((!(1) >= 180) AND (!(1) < 240)) , (!(3) * !(2)) * (1.0 - abs(modu(!(1) / 60.0,2) - 1.0)), si(((!(1) >= 60) AND (!(1) < 180)), !(3) * !(2), 0.0)) + (!(3) - (!(3) * !(2))))
def hsvToB(3) (si((!(1)  >= 0) AND (!(1) < 120), 0, si(((!(1) >= 180) AND (!(1) < 300)) , !(3) * !(2) ,  (!(3) * !(2)) * (1.0 - abs(modu(!(1) / 60.0, 2) - 1.0)))) + (!(3) - (!(3) * !(2))))
 
24.02.2023  
 




H.Brill
Es scheint wirklich so, qui MOD seulement den Integeranteil nimmt.
cela scheint dans C++, Free Pascal usw. mais aussi so trop son.

peut-être peux on mais aussi avec Inline - ASM quoi faire, si
es um Schnelligkeit allez. avec
Set("AsmMode", 1)
peux on sich oui aussi qui Bytes zusammen chercher, um cela ganze
aussi avec anderen Profanversionen mittels Bereichen trop nutzen.

là müßtest du la fois Volkmar dans Paules Forum fragen. Wäre oui intéressant,
là es oui aussi une la quantité à FPU-Befehlen gibt, qui Fließkomma-Arithmetik
beherrschen.

qui kennt sich dans ASM pour Version X4 einigermaßen bien aus.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
24.02.2023  
 




H.Brill
Sven Bader (24.02.2023)
je travaille avec Profan2Cpp et là ist, comment je plan nochmal nachgemessen habe un Proc um facteur 350 langsamer comme un Def, dans XProfan 11 liegt qui facteur chez 1,1. cela verleitet quelquefois trop ungewöhnlichen "Stunts".


qui facteur 350 liegt mais wohl à Profan2Cpp selber. le son RGH devrait
Procs mindestens genauso vite abgearbeitet volonté. Zur schnelleren
Abarbeitung (C - Code) était oui aussi Profan2Cpp gedacht.

Sven Bader (24.02.2023)
depuis dans XProfan aussi mehrzeilige Funktionen (avec Proc) possible sommes (ab Version 7.6), devrait cet vorgezogen volonté. vous volonté mindestens genauso vite abgearbeitet et sommes zudem dans qui règle aussi übersichtlicher et daher leichter trop comprendre.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
24.02.2023  
 




Sven
Bader
tu as droite, je hatte pour Profan facteur 1,1 erwähnt. alors dans Profan est un Proc justement la fois 10% langsamer, quoi vollkommen ok ist. je n'en sais rien, quoi P2Cpp là pouvoir, sûrement so quelque chose komplexes comment globale Variablen et Stukturen vérifier et dans qui Funktion bereitstellen.

Profan2Cpp ist oui toujours plus rapide, aussi chez Procs, dans somme avons wir oui meist déjà une 4-stelligen facteur im comparaison trop Profan. c'est chez seulement toujours un peu jongler, là Je l' Code lesbar et kompatibel trop Profan tenir voudrais mais im Zweifel une Speed-Optimierung plutôt zugunsten de P2CPP entscheide.

je hatte incidemment pas sur dem Schirm, dass MOD dans C++ comment dans Profan reagiert... eventuell était mon Codevorlage aussi PHP ou bien JS basé.
 
24.02.2023  
 




H.Brill
si es sur Schnelligkeit ankommt, ist plan ASM toujours
erste l'élection. si je quelque chose comme brauche, nehme je aussi volontiers
PureBasic. cela fait ensuite reinen FASM-Output. Notfalls allez
aussi une .DLL (Wrapper-DLL). Bloß darf je cet seulement pour mon
eigenen Zwecke nutzen et qui DLL à autre Programmierer
pas weitergeben. quoique je lebenslanges Update habe, habe je
l'année dernière pas geupdatet. qui Autor (Fred) ist sur un nouveau
C-Backend umgeswitcht.
Wahrscheinlich ist es leichter, neue Befehle / Funktionen trop
implementieren. là gibt es dans C bestimmt aussi tonnenweise .libs,
qui bestimmte Funktionalitäten bereitstellen. So ähnlich wird es
aussi RGH avec certain Unités gemacht avons. on braucht
oui pas toujours cela roue récente trop erfinden.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
24.02.2023  
 




Sven
Bader
la plus part du temps passt qui Speed, Defs sommes vite genug et Procs sommes ok sauf pour Dinge, qui très souvent aufgerufen volonté. quelquefois reicht es simple, une Boucle de außerhalb pour dedans des Proc trop verlagern.

Zum Verständnis, quoi "langsam" ist:
qui Proc-Aufruf dauert etwa une µs alors 1/1.000.000 seconde bzw il y a etwa 1000 Proc-Aufrufe pro ms possible.

chez einem Spiel avec 60fps habe je un Budget de etwa 16ms pro Frame et là je une CPU pas voll auslasten voudrais sommes 1.000 Proc-Aufrufe pro Frame alors 1ms déjà viel, c'est oui aussi et avec ca dans den Funktionen drin, quoi aussi encore fonctionnement volonté voudrais

un Def braucht im comparaison 0,002 µs bzw. 0.000002 ms bzw. 0.000000002 s

, alles Profan2CPP. Bisher était alors encore un Assembler nötig.
 
24.02.2023  
 




H.Brill
qui Erfahrung, qui je gemacht habe, sommes qui internen
Schleifen de XProfan. qui sommes aussi important plus rapide
comme qui eigenen avec Tandis que ou bien Repeat programmierten.
qui MoveListProc ist là très intéressant, justement quoi Arrays
betrifft. Es steht oui chaque libre, quoi dans qui MoveListProc geschieht.

ici la fois un Test, wohin alle 3 Opportunités gemessen volonté :
Déclarer Long a[], float a, e
Cls
Set("Décimal", 2)
SetSize a[], 30000
Mat a[] < 1
Mat a[] + 1
MoveListProc
Paramètres string s, int i

Si Get("MoveListMode") = 1

    AddStrings(0, s)

Endif

ENDPROC

Proc Testproc

Paramètres Long w
AddStrings(0, Str$(w))

ENDPROC

a = Val(DT("GetTime", 1, !NOW))
ClearList
Move("ArrToList", a[])
e = Val(DT("GetTime", 1, !NOW))
Imprimer "Zeit avec Move :            ", e - a, "Sekunden"
set("MoveListMode", 1)
a = Val(DT("GetTime", 1, !NOW))
ClearList
déplacer("ArrToList", a[])
e = Val(DT("GetTime", 1, !NOW))
Imprimer "Zeit avec MoveListProc :    ", e - a, "Sekunden"
a = Val(DT("GetTime", 1, !NOW))
ClearList

WhileLoop 0, SizeOf(a[]) - 1

TestProc(a[&LOOP])

Endwhile

e = Val(DT("GetTime", 1, !NOW))
Imprimer "Zeit avec Boucle + Proc : ", e - a, "Sekunden"
Imprimer "Taste zum finissons..."
WaitKey

je hoffe, j'ai cela avec den Sekunden richtig gemacht.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
24.02.2023  
 




funkheld
chez Purebasic ca va aussi sans Wrapper comme Procedure-Dll qui ist komplett libre pour alle Zwecke.
 
10.03.2023  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

3.266 Views

Untitledvor 0 min.
H.Brill13.11.2023
Sven Bader10.08.2023
Thomas Zielinski28.06.2023
Paul Glatz22.06.2023
plus...

Themeninformationen

cet Thema hat 3 participant:

H.Brill (5x)
Sven Bader (4x)
funkheld (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie