Um pouco surpreendido :) Pensei em partilhar e fazer uma pergunta NÃO retórica. - página 22

 
MetaDriver:

1. esta é uma operação pontual para cada tomada. A perda é insignificante, depois ganhos sólidos. :) Presumo que o quociente original é logarítmico uma vez e convertido em representação de números inteiros.

2. isto é correcto. Embora seja rápido, porque existe um algoritmo rápido que utiliza turnos de bits.

3. não mais do que verificações de transbordo.

4. a parte inteira não precisa de ser atribuída de forma alguma. a fracção é armazenada como um par de longs. e se possível, como um par de ints.

5. exactamente a mesma quantidade se armazenada como um par de longs, e metade da quantidade no caso de haver ints suficientes (depende das exigências do algoritmo).

Se considerarmos que o consumidor de memória principal é uma citação, então com representação inteira, o ganho no espaço é inegável.

Embora o ponto principal não seja a poupança de memória, mas sim a aceleração. Isto é muito mais importante.

--

O problema com o Académico não é que ele esteja errado. É que ele está a fazer os outros parecerem errados.

É isso que irrita os presentes e rejeita ideias saudáveis. Juntamente com a água suja... :(

Vladimir, não estás confuso? O que descreveu é aritmética dupla e frota de baixo nível, a mesma aritmética que "Académico" propõe introduzir requer (mesmo sem atribuição de uma parte inteira) pelo menos dois mantis para armazenamento.

Bem, onde está a economia nisso? 8 bytes para o duplo e 2*4 bytes para o int.

Na melhor das hipóteses, chegará ao resultado que já está implementado.

 
Urain:

Vladimir, não estás confuso? O que descreveu é uma aritmética de baixo nível de duplo e frota, a mesma aritmética que "Akademik" propõe introduzir requer pelo menos dois mantis para armazenamento (mesmo sem a parte inteira).

Por isso, onde está a poupança nisso. 8 bytes para o duplo e 2*4 bytes para o int.

Na melhor das hipóteses, chegará ao resultado que já está implementado.

Portanto, armazenar todos os pontos (denominadores) de quantidades unidimensionais no mesmo local - são os mesmos. :)

Criar um tipo - um valor em um décimo de um ponto e pronto. E armazenar este denominador separadamente.

 
MetaDriver:

Vou experimentá-lo. Em mql5, se quiser... :)

Só preciso de tempo. Terei de escrever uma biblioteca.

Experimentei-o uma vez, não há doces, é apenas uma perda de tempo.

Decomponha o duplo num número binário, e represente-o como dois ints e perceberá que tudo o que descreve já está implementado em aritmética dupla.

Apenas a aritmética é implementada a um nível baixo, e fá-lo-á a um nível superior, pelo que perderá desempenho e memória.

 

Os meus cinco cêntimos.

Os números inteiros são uma forma mais natural de apresentar informação de citações. Afinal, é impossível que um certo número de pontos não seja um número inteiro. O armazenamento de tais números é mais económico e, por conseguinte, a velocidade de descarga ao nível da memória de disco e do processador de memória é mais elevada. Os algoritmos são muito mais rápidos do que os algoritmos de números reais, e a SSE em geral está para além da concorrência. Mas, há um grande problema com os inteiros - só contando as pessoas é que se pode trabalhar com eles. E, claro, o terminal deve ter apoio de asm. Para o consumidor de massa MQ estes números não são adequados.


A propósito, o problema da verificação de transbordamento é implementado ao nível das interrupções de hardware, não há nada de errado com ele, pelo contrário, as pessoas pensaram nisso há muito tempo quando os processadores foram criados. Em princípio há muitas formas e truques de programação de algoritmos inteiros, mas tudo isto, repito, não é para utilizadores em massa.


Não vejo de que se trata o argumento. Pode criar um algoritmo de teste/optimização mais rápido do que o que tem no seu testador? Pode, mas não será um algoritmo universal que viverá numa estufa na presença do autor - muito poucas pessoas precisam de tal coisa - não é um produto de massa. Por esta razão, declarações no espírito do "meu é mais rápido" só podem ser vistas como prova de incomparabilidade e falta de compreensão do facto de não se poder comparar o incomparável.

 
Urain:

Experimentei-o uma vez, não há doces, é apenas uma perda de tempo.

Decomponha o duplo num número binário, e represente-o como dois ints e perceberá que tudo o que descreve já está implementado em aritmética dupla.

ZZY Apenas a aritmética é implementada a um nível baixo, e fá-lo-á a um nível superior, que perderá desempenho e memória.

"Se não recuperar o atraso, vou manter-me quente", como dizia o galo a perseguir a galinha... :)

Na verdade, há muito tempo que penso nisso, é provavelmente altura de tentar.

 
MetaDriver:

"Se não apanhar, vou manter-me quente", como disse o galo, a perseguir a galinha. :)

Na verdade, já há algum tempo que penso nisso, por isso penso que é altura de experimentar.

Algoritmo de NOD recursivo a dar?
 
TheXpert:

Para quê? C++ é aceite.

Vou dar uma vista de olhos. Tenho de o sentir primeiro. Eu próprio estou curioso sobre isso.
 
Urain:
Quer um algoritmo de NOD recursivo?
Se com mudanças de bit, vá em frente. Se com a divisão modulo, não o faça.
 
MetaDriver:
Se for com pequenos turnos, vá em frente. Se com divisão por modulo, então não o faça.

Vai dividir um (não necessariamente um múltiplo de 2) número por outro (não necessariamente um múltiplo de 2) número usando um bit shift?

Muito bem, vou juntar o que tenho, e depois pode decidir por si próprio se precisa ou não.

//+------------------------------------------------------------------+
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:
Os rostos sorridentes nos seus futuros postos serão recortados. Tenham isso em mente.

Obrigado por admiti-lo - você corta emoticons, mas quem remove postes inteiros?

Numa nota lateral, Académica, Penso que é óptimo que tenha uma chamada "calculadora", mas se quiser ser mais específico, tem uma opção para a optimizar automaticamente durante a negociação?