Biraz şaşırdım :) Retorik bir soru DEĞİL paylaşmaya ve sormaya karar verdim. - sayfa 21

 
Renat :

Başarısız bir ifadeden diğerine kolayca atlayın.

Bu, rasyonel veri türlerine sahip bir işlemciniz olduğunda ve bir sonraki SSExxx talimatları seti onlarla iki katından daha hızlı çalışabildiğinde, o zaman rasyonel sayıları hesaplamaları hızlandırma konusunun tartışmasına bağlayabilirsiniz. SMA hesaplama testlerini farklı yöntemlerle yayınladığınızda ve ikiliye karşı zaferi gösterdiğinizde, o zaman bir alıştırma konuşması olacaktır.

Bu arada, tam sayılara geçerken gerçek matematiksel hesaplamaların hızlandırılmasıyla ilgili orijinal ifade başarısız oldu.

Sorun nedir ?! HİÇBİR ŞEYİ atlamadım. Sadece yarısını okursanız. Ne yazık ki. Rasyonel sayılar hakkında daha önce yirmi kez söyledim. Ama kesirli olduğunu burnunu sokana kadar kimse anlamadı. :) Sana söylüyorum - komik. Ne yazık ki. :(


:) Başarısız - Tamsayılardan ve NOKTA kavramından bahsediyordum ve nokta her zaman paydadır. Puan 10000 ise 13000 puan - o zaman değer = 13000/10000 = 1,3 :)

 
Academic :

Sorun nedir ?! HİÇBİR ŞEYİ atlamadım. Sadece yarısını okursanız. Ne yazık ki. Rasyonel sayılar hakkında daha önce yirmi kez söyledim. Ama kesirli olduğunu burnunu sokana kadar kimse anlamadı. :) Sana söylüyorum - komik. Ne yazık ki. :(


:) Başarısız - Tamsayılardan ve NOKTA kavramından bahsediyordum ve nokta her zaman paydadır. Puan 10000 ise 13000 puan - o zaman değer = 13000/10000 = 1,3 :)

8 baytlık bir çift (tamsayı parçası + payda + pay) yerine üç 8 bayt uzunluğunda işlemeyi önerdikleriniz için, böyle bir devi çekmek için yeterli bellek olmayacaktır. Ve daha kısa bir şey için uzunları kesmeye başlarsanız, oldukça yeterli hesaplamalarda taşma elde edersiniz.

Üç giriş bile bir çiftten fazladır.

 
Urain :
8 baytlık bir double (tam sayı parçası + payda + pay) yerine üç 8 bayt uzunluğunda işlemeyi önerdikleriniz için, böyle bir devasa değeri çekmek için yeterli bellek olmayacaktır. Ve daha kısa bir şey için uzunları kesmeye başlarsanız, oldukça yeterli hesaplamalarda taşma elde edersiniz.

Uygulamak için en kötü yolu seçtiniz. Bana söylediklerini göz önüne alırsak, uymuyor. Hangimiz daha iyi biliyor?

Kilometre cinsinden bir sayı var - bu int32 Ve başka bir şeye ihtiyacı yok. Sadece başka bir boyuttaki bir değere eklemeyin. :) Kilometreden daha fazla doğruluk istiyorsanız - nanometreye gidin. :) Ve onları bir tamsayı olarak saklayın. :)

 

TheXpert :

İkincisi, double ile aritmetiğin rasyonel sayılarla olduğundan daha yavaş olduğundan kesinlikle şüpheliyim.

Wapcheta daha yavaştır. Sadece yanlış bağlantıyı verdi.

1. BOOST'ta uygulama, rac'ı normalleştirir. Onlarla her işlem sırasında numaralar. Bunu herkese yapmak gerekli değildir, çünkü pahalıdır. Bunu yalnızca gerçek bir payda taşması tehdidi varsa yapmak daha iyidir.

2. Ortak bir paydaya indirgeme (daha doğrusu en büyük ortak bölenin hesaplanması) burada en hızlı algoritmaya göre yapılmaz. Bugün daha hızlısı var.

Söylenenlere göre ayarlandığında, rac'ın ateş hızı konusunda haklı. sayılar.

Aritmetik işlemlerin yeniden yüklenmesi olsaydı, onları mql'ye koyardım. Ve onsuz - çok sıkıcı bir sözdizimi ortaya çıkıyor (işlevsel), o yüzden iyi, ... C++ :-)

--

Ama işlemci düzeyinde destek çıksa gerçekten harika olurdu...

 
MetaDriver :

Wapcheta daha yavaştır. Sadece yanlış bağlantıyı verdi.

1. BOOST'ta uygulama, rac'ı normalleştirir. Onlarla her işlem sırasında numaralar. Bunu herkese yapmak gerekli değildir, çünkü pahalıdır. Bunu yalnızca gerçek bir payda taşması tehdidi varsa yapmak daha iyidir.

2. Ortak bir paydaya indirgeme (daha doğrusu en büyük ortak bölenin hesaplanması) burada en hızlı algoritmaya göre yapılmaz. Bugün daha hızlısı var.

Söylenenlere göre ayarlandığında, rac'ın ateş hızı konusunda haklı. sayılar.

Aritmetik işlemlerin yeniden yüklenmesi olsaydı, onları mql'ye koyardım. Ve onsuz - çok sıkıcı bir sözdizimi ortaya çıkıyor (işlevsel), o yüzden iyi, ... C++ :-)

--

Ama işlemci düzeyinde destek çıksa gerçekten harika olurdu...

Aritmetiğin kendisi daha yavaştır çünkü yine de kayan noktayı işlemeniz gerekir (bu, ikili ile uzunun saf aritmetiğini karşılaştırırsanız olur), ancak çiftleri tamsayı aritmetiğine çevirirseniz kaybedersiniz. Tek başına gcd özyinelemeli hesaplama log(N) işlemlerini gerektirecektir, ayrıca her çarpma işleminin taşmayı kontrol etmek için bir if gerektireceğinden bahsetmiyoruz. Ardından 4 bölüm daha (ikisi GCD için ve tamsayı kısmı ve kesirli kalanı vurgulamak için).

Tüm bunlara ek olarak, tüm bu saçmalıkları depolamak için ihtiyaç duyduğunuzdan daha fazla bellek ayırmanız gerekiyor.

 
MetaDriver :

Wapcheta daha yavaştır. Sadece yanlış bağlantıyı verdi.

Kanıt? Tabii benim gözümde topikstarter'dan daha yetkilisin ama deyim güçlü.

Bu nedenle, karşılaştırmalı testler görmek istiyorum.

 
Urain :

Aritmetiğin kendisi daha yavaştır çünkü hala kayan noktayı işlemeniz gerekir (bu, double ve long'un saf aritmetiğini karşılaştırırsanız olur),

1. Kopyaları tamsayı aritmetiğine çevirirseniz kaybedersiniz.

2. Tek başına gcd'nin özyinelemeli hesaplaması, log(N) işlemlerini gerektirecektir;

3. Her çarpma işlemi, taşmayı kontrol etmek için bir if gerektirecektir.

4. Ardından 4 bölme daha (ikisi GCD için ve tamsayı kısmı ve kesirli kalanı vurgulamak için).

5. Tüm bunlara ek olarak, tüm bu saçmalıkları saklamak için bir çekim için ihtiyacınız olandan daha fazla bellek ayırmanız gerekecek.

1. Bu, her çekim için tek seferlik bir işlemdir. Kayıp ihmal edilebilir, ardından sağlam kazançlar. :) Orijinal alıntının bir kez logaritmik olduğunu ve tamsayı gösterimine dönüştürüldüğünü varsayıyorum.

2. Bu doğru. Hızlı olmasına rağmen, çünkü bit kaydırma kullanan akıllı bir algoritma var.

3. Uzun taşma kontrollerinden daha fazla değil.

4. Tamsayı kısmını tahsis etmek hiç gerekli değildir. kesir bir çift uzun olarak saklanır. ve mümkünse - bir çift giriş olarak.

5. bir çift uzun olarak saklanırsa tam olarak aynı miktar ve yeterli ints varsa yarısı kadardır (bu, algoritmanın kesinliğine bağlıdır).

Alıntıların belleğin ana tüketicisi olduğunu hesaba katarsak, o zaman bir tamsayı gösterimi ile uzaydaki kazanç yadsınamaz.

Ana özelliğin hafızadan tasarruf etmek değil, hızlandırmak olmasına rağmen. Bu çok daha önemli.

--

Akademisyenle ilgili sorun yanlış olması değil. Bu da diğerlerinin yanlış olduğunu ortaya çıkarır.

Bu, mevcut olanların tahriş olmasına ve sağlıklı fikirlerin reddedilmesine neden olur ... kirli su ile birlikte ... :(

 
TheXpert :

Bu nedenle, karşılaştırmalı testler görmek istiyorum.

Deneyeceğim. Mql5'te, eğer böyle bir içki gittiyse... :)

Sadece zaman alacak. Bir kütüphane yazmalısın.

 
MetaDriver :

Deneyeceğim. Mql5'te, eğer böyle bir içki gittiyse... :)

Ne için? C++ kabul edilir.

MetaSürücü :

Akademisyenle ilgili sorun yanlış olması değil. Bu da diğerlerinin yanlış olduğunu ortaya çıkarır.

Sorun şu ki, kendini diğerlerinden daha akıllı görüyor ve sürekli birilerini aptal gibi göstermeye çalışıyor.

Aynı zamanda yalan söylüyor. Yerlerde güçlü.

 
MetaDriver :

Akademisyenle ilgili sorun yanlış olması değil. Bu da diğerlerinin yanlış olduğunu ortaya çıkarır.

Bu, mevcut olanların tahriş olmasına ve sağlıklı fikirlerin reddedilmesine neden olur ... kirli su ile birlikte ... :(

Ben kimseyle uğraşmıyorum. Ama benim için tam tersi. :) Kim kimi çağırdı tavsiyesiyle "konuya geçeyim mi?" :)

Ve zaten o zaman ben - :) Eh, ördek nefig ve ben.

Genel olarak fark nedir? - Burada ne tartışılabilir? IMHO - her şey olduğu gibi aynı ilkel seviyede kaldı. Yani benimle ilgili bir sorun yok - sanki yokmuşum gibi. :)