Español
Foro

Modulo arbeitet sólo ganzen Pagar

 

Sven
Bader
Für el Übersetzung einiger C++ Codes después de XProfan ersetze Yo, el % Operator siempre por una MOD, allerdings con inesperado Ergebnissen.
Entweder el Eingabewerte oder el Ergebnis voluntad en una Integer umgwandelt.

Das weicht de el Comportamiento de C++ y el Google Taschenrechner de, welcher auch Pagar con Dezimalstellen akzeptiert.

Ein Ejemplo:
5.5 MOD 2 son 1.5 also 2*2 Rest 1.5

In XProfan ergibt el gleiche Rechnung 1.0, como entweder el 5.5 a 5.0 umgewandelt se oder el Ergebnis de 1.5 en 1.0.

Hier una kleines Listing para nachvollziehen y uno Solución
Def mod(2) (!(1) - !(2) * int(!(1) / !(2)))
imprimir (5.5 MOD 2)
imprimir (5.5 MOD 2.0)
imprimir mod(5.5, 2)
waitkey
end

Übersehe Yo algo en XProfan, hay una Einestellung oder una otro Operator oder es sólo el Hilfsfunktion?
 
23.02.2023  
 




H.Brill
Como en el Ayuda en MOD INTEGER como Parámetro angegeben son,
greift como wohl (X)Profans interne automatische Typumwandlung.
Das trifft wohl en el Eingabeparameter como auch el Ergebnis
a.

Aber wozu braucht uno Float y MOD ?
Yo brauche el höchstens, si yo z.B. 10él Stellen , gerade oder
ungerade Pagar de una Pool rausfischen voluntad.

En
Imprimir (4.5 MOD 1.5)

stimmt lo sí y lo kommt 0 fuera.
 
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
Gracias para deine Antwort! Der Einsatz wäre doch ebenso berechtigt como Division con Floats. Man möchte wissen, como oft una Zahl en el otro passt oder eben wieviel danach todavía unverteilt übrig restos.

Den Ganzzahligen Divisionsrest nutze Yo en el Praxis schnelle Método algo sólo cada x-ten Schleifendurchgang a hacer.
if (&bucle MOD 2 = 0)


Der aktuelle Einsatz es ser Spezialfall, es el Umwandlung de HSV en RGB Farben. Lo son como durchaus auch solche Características sin MOD pero la Code musste muy rápidamente trabajo, por qué Yo como Chiste breve en uno Def-Función brauchte.

Yo arbeite con Profano2Cpp y hay es, Yo eben otra vez nachgemessen habe una Proc en Faktor 350 langsamer como una Def, en XProfan 11 liegt el Faktor en 1,1. Das verleitet manchmal a ungewöhnlichen "Stunts".

A Lesbarkeit lasse Yo en el Regel todavía una Kommentar con el Original-Función en el Ver código fuente aber así sieht el Ergebnis entonces de
Def modu(2) (!(1) - !(2) * int(!(1) / !(2)))
def hsvToR(3) (if(((!(1) >= 60) AND (!(1) < 120)) O ((!(1) >= 240) AND (!(1) < 300)) , (!(3) * !(2)) * (1.0 - abs( modu(!(1) / 60.0,2) - 1.0)), if(((!(1) >= 120) AND (!(1) < 240)), 0.0 , !(3) * !(2))) + (!(3) - (!(3) * !(2))))
def hsvToG(3) (if(((!(1) >= 0) AND (!(1) < 60)) O ((!(1) >= 180) AND (!(1) < 240)) , (!(3) * !(2)) * (1.0 - abs(modu(!(1) / 60.0,2) - 1.0)), if(((!(1) >= 60) AND (!(1) < 180)), !(3) * !(2), 0.0)) + (!(3) - (!(3) * !(2))))
def hsvToB(3) (if((!(1)  >= 0) AND (!(1) < 120), 0, if(((!(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
Lo scheint wirklich así, daß MOD sólo el Integeranteil nimmt.
Das scheint en C++, FreePascal usw. aber auch así a ser.

Tal vez puede ser aber auch con Inline - ASM qué hacer, si
lo en Schnelligkeit va. Mit
Conjunto("AsmMode", 1)
puede ser se en efecto el Bytes zusammen suchen, en todos
auch con otro Profanversionen mittels Bereichen a nutzen.

Como müßtest du veces Volkmar en Paules Foro fragen. Wäre sí interessant,
como lo en efecto una Menge a FPU-Befehlen son, el Fließkomma-Arithmetik
beherrschen.

Der sabe se en ASM para Versión X4 einigermaßen bien de.
 
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)
Yo arbeite con Profano2Cpp y hay es, Yo eben otra vez nachgemessen habe una Proc en Faktor 350 langsamer como una Def, en XProfan 11 liegt el Faktor en 1,1. Das verleitet manchmal a ungewöhnlichen "Stunts".


Der Faktor 350 liegt pero probablemente a Profano2Cpp selber. Laut RGH debería
Procs mindestens genauso rápidamente abgearbeitet voluntad. A schnelleren
Abarbeitung (C - Code) war en efecto Profano2Cpp pensamiento.

Sven Bader (24.02.2023)
Seit en XProfan auch mehrzeilige Características (con Proc) posible son (de Versión 7.6), debería esta vorgezogen voluntad. Sie voluntad mindestens genauso rápidamente abgearbeitet y son zudem en el Regel auch übersichtlicher y por lo tanto leichter a verstehen.
 
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
Usted hast bastante, Yo hatte para Profano Faktor 1,1 erwähnt. Also en Profano es una Proc gerade veces 10% langsamer, qué vollkommen ok es. Keine Idea, qué P2Cpp como macht, sicher así algo komplexes como globale Variables y Stukturen prüfen y el Función bereitstellen.

Profano2Cpp es sí siempre todavía más rápido, auch en Procs, en Summe haben wir sí meist ya una 4-stelligen Faktor en el Vergleich a Profano. Es en sólo siempre una wenig Jonglieren, como Yo, el Code lesbar y kompatibel a Profano halten möchte aber en el Zweifel una Speed-Optimierung más zugunsten de P2CPP entscheide.

Yo hatte de paso no en el Schirm, dass MOD en C++ como en Profano reagiert... eventuell war mi Codevorlage auch PHP oder JS basiert.
 
24.02.2023  
 




H.Brill
Wenn lo en Schnelligkeit ankommt, es eben ASM siempre todavía
erste Wahl. Wenn Yo algo como brauche, Aprovecho También me gusta
PureBasic. Das macht entonces reinen FASM-Output. Notfalls va
auch una .DLL (Wrapper-DLL). Bloß darf Yo esta sólo para mi
eigenen Zwecke nutzen y el DLL a otro Programmierer
no weitergeben. Obwohl Yo lebenslanges Actualización habe, Yo
letztes Jahr no geupdatet. Der Autor (Fred) es en una neues
C-Backend umgeswitcht.
Wahrscheinlich es leichter, neue Befehle / Características a
implementieren. Puesto que hay lo en C determinado auch tonnenweise .libs,
el cierto Funktionalitäten bereitstellen. So ähnlich se lo
auch RGH con cierto Unidades gemacht haben. Man braucht
sí no siempre el Rad neu a 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
Meistens passt el Speed, Defs son rápidamente genug y Procs son ok außer para Dinge, el muy oft aufgerufen voluntad. Manchmal reicht lo simplemente, una Bucle de außerhalb después de innerhalb des Proc a verlagern.

Zum Verständnis, qué "langsam" es:
Der Proc-Aufruf dauert etwa una µs also 1/1.000.000 Sekunde o lo son etwa 1000 Proc-Aufrufe pro ms posible.

En una Spiel con 60fps Yo una Budget de etwa 16ms pro Frame y como Yo una CPU no voll auslasten möchte son 1.000 Proc-Aufrufe pro Frame also 1ms ya viel, es en efecto todavía algo en el Características drin, qué auch todavía ausgeführt voluntad möchte

Ein Def braucht en el Vergleich 0,002 µs o. 0.000002 ms o. 0.000000002 s

, alles Profano2CPP. Bisher war also todavía una Ensamblador nötig.
 
24.02.2023  
 




H.Brill
El Erfahrung, el Yo gemacht habe, son el internen
Schleifen de XProfan. El son auch bedeutend más rápido
como el eigenen con Mientras que oder Repeat programmierten.
El MoveListProc es como muy interessant, gerade qué Arrays
betrifft. Lo es sí cada frei, qué en el MoveListProc geschieht.

Hier veces una Test, wo todos 3 Möglichkeiten gemessen voluntad :
Declarar Largo a[], float a, e
Cls
Conjunto("Decimals", 2)
SetSize a[], 30000
Mat a[] < 1
Mat a[] + 1
MoveListProc
Parámetros cadena s, int i

If Get("MoveListMode") = 1

    AddStrings(0, s)

Endif

ENDPROC

Proc Testproc

Parámetros Largo w
AddStrings(0, Str$(w))

ENDPROC

a = Val(DT("GetTime", 1, !NOW))
ClearList
Move("ArrToList", a[])
e = Val(DT("GetTime", 1, !NOW))
Imprimir "Zeit con Move :            ", e - a, "Sekunden"
set("MoveListMode", 1)
a = Val(DT("GetTime", 1, !NOW))
ClearList
move("ArrToList", a[])
e = Val(DT("GetTime", 1, !NOW))
Imprimir "Zeit con 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))
Imprimir "Zeit con Bucle + Proc : ", e - a, "Sekunden"
Imprimir "Taste para Beenden..."
WaitKey

Yo hoffe, Tengo el con el Sekunden correcto 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
En Purebasic es auch sin Wrapper como Procedure-Dll el es komplett frei para todos Zwecke.
 
10.03.2023  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

3.248 Views

Untitledvor 0 min.
H.Brill13.11.2023
Sven Bader10.08.2023
Thomas Zielinski28.06.2023
Paul Glatz22.06.2023
Más...

Themeninformationen

Dieses Thema ha 3 subscriber:

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


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie