Un poco sorprendido :) Pensé en compartir y hacer una pregunta NO retórica. - página 22

 
MetaDriver:

1. Se trata de una operación única para cada toma. La pérdida es insignificante, luego las ganancias sólidas. :) Supongo que el cociente original se logaritma una vez y se convierte en representación entera.

2. esto es correcto. Aunque es rápido, porque hay un algoritmo rápido que utiliza desplazamientos de bits.

3. no más que controles de desbordamiento.

4. la parte de enteros no necesita ser asignada en absoluto. la fracción se almacena como un par de longs. y si es posible, como un par de ints.

5. Exactamente la misma cantidad si se almacena como un par de longs, y la mitad en el caso de que haya suficientes ints (depende de los requisitos del algoritmo).

Si tenemos en cuenta que el principal consumidor de memoria es una cita, con la representación de enteros la ganancia de espacio es innegable.

Aunque el punto principal no está en el ahorro de memoria, sino en la aceleración. Esto es mucho más importante.

--

El problema con el Académico no es que esté equivocado. Es que hace que los demás queden mal.

Eso es lo que irrita a los presentes y rechaza las ideas sanas... Junto con el agua sucia... :(

Vladimir, ¿no estás confundido? Lo que has descrito es aritmética de bajo nivel doble y flota, la misma aritmética que "Académico" propone introducir requiere (incluso sin asignación de una parte entera) al menos dos mantis para el almacenamiento.

Bueno, ¿dónde está la economía en eso? 8 bytes para el doble y 2*4 bytes para el int.

En el mejor de los casos, llegarás al resultado que ya está implementado.

 
Urain:

Vladimir, ¿no estás confundido? Lo que has descrito es una aritmética de bajo nivel de doble y flota, la misma aritmética que "Akademik" propone introducir requiere (incluso sin la asignación de una parte entera) al menos dos mantis para el almacenamiento.

Entonces, ¿dónde está el ahorro en eso? 8 bytes para el doble y 2*4 bytes para el int.

En el mejor de los casos, llegarás al resultado que ya está implementado.

Por lo tanto, almacena todos los puntos ( denominadores) de las cantidades unidimensionales en el mismo lugar: son los mismos. :)

Crea un tipo - un valor en una décima de punto y ya está. Y guardar este denominador por separado.

 
MetaDriver:

Lo intentaré. En mql5, si quieres... :)

Sólo necesito tiempo. Tendré que escribir una biblioteca.

Lo intenté una vez, no hay caramelos, es una pérdida de tiempo.

Descomponga el doble en un número binario y represéntelo como dos ints y se dará cuenta de que todo lo que describe ya está implementado en la aritmética del doble.

Sólo se implementa la aritmética a bajo nivel, y lo harás a un nivel superior, por lo que perderás rendimiento y memoria.

 

Mis cinco centavos.

Los números enteros son una forma más natural de presentar la información de las cotizaciones. Después de todo, es imposible que un número de puntos no sea un número entero. El almacenamiento de estos números es más económico y, por tanto, la velocidad de descarga a nivel de disco-memoria y memoria-procesador es mayor. Los algoritmos son mucho más rápidos que los de números reales, y las operaciones por lotes SSE están fuera de la competencia. Pero hay un gran problema con los números enteros: sólo las personas que cuentan pueden trabajar con ellos. Y por supuesto, el terminal debe tener soporte asm. Para el consumidor masivo MQ estos números no son adecuados.


Por cierto, el problema de la comprobación de desbordamiento se implementa a nivel de las interrupciones de hardware, no hay nada malo en ello, al contrario, la gente pensó en ello hace mucho tiempo cuando se crearon los procesadores. En principio hay muchas formas y trucos de programación de algoritmos enteros, pero todo esto, repito, no es para el usuario masivo.


No veo a qué viene la discusión. ¿Puede crear un algoritmo de prueba/optimización más rápido que el que tiene el probador? Se puede, pero no será un algoritmo universal que vivirá en un invernadero en presencia del autor - muy poca gente necesita tal cosa - no es un producto de masas. Por eso, las afirmaciones del tipo "el mío es más rápido" sólo pueden considerarse una prueba de incomparabilidad y de falta de comprensión del hecho de que no se puede comparar lo incomparable.

 
Urain:

Lo intenté una vez, no hay caramelos, es una pérdida de tiempo.

Descomponga el doble en un número binario y represéntelo como dos ints y se dará cuenta de que todo lo que describe ya está implementado en la aritmética del doble.

ZZY Sólo se implementa la aritmética a bajo nivel, y se hace a un nivel superior, donde se pierde rendimiento y memoria.

"Si no te alcanzo, me caliento", como decía el gallo que perseguía a la gallina... :)

De hecho, he estado pensando en ello durante mucho tiempo, probablemente sea el momento de intentarlo.

 
MetaDriver:

"Si no te alcanzo, me caliento", como dijo el gallo, persiguiendo a la gallina... :)

De hecho, llevo un tiempo pensando en ello, así que creo que ha llegado el momento de intentarlo.

Algoritmo NOD recursivo para dar?
 
TheXpert:

¿Para qué? Se acepta C++.

Voy a echar un vistazo. Tengo que sentirlo primero. Yo también tengo curiosidad.
 
Urain:
¿Quieres un algoritmo NOD recursivo?
Si con cambios de bit, adelante. Si con la división del módulo, no.
 
MetaDriver:
Si es con cambios de bit, adelante. Si con la división por módulo, entonces no.

¿Vas a dividir un número (no necesariamente múltiplo de 2) por otro (no necesariamente múltiplo de 2) utilizando un desplazamiento de bits?

Bien, voy a poner lo que tengo, y luego usted decide por sí mismo si lo necesita o no.

//+------------------------------------------------------------------+
long GreatestCommonDivisor(long v0,long v1)
  {
   return(GCD(fmax(fabs(v0),fabs(v1)),fmin(fabs(v0),fabs(v1))));
  }
//+------------------------------------------------------------------+
long GCD(long max,long min)
  {
   if(min>0)return(GCD(min,max%min));
   else return(max);
  }
//+------------------------------------------------------------------+
 
DDFedor:
Las caritas sonrientes en tus futuros posts serán recortadas. Tenlo en cuenta.

Gracias por admitirlo: tú cortaste los emoticonos, pero ¿quién quita posts enteros?

En una nota aparte, Académica, Me parece estupendo que tenga una supuesta "calculadora", pero si quiere ser más específico, ¿tiene una opción para optimizarla automáticamente durante el comercio?