SORU
21 EKİM 2009, ÇARŞAMBA


C valarray vs vektör

Yani, vektörler çok seviyorum. Şık ve hızlılar. Ama bu şey bir valarray adı var biliyorum. Neden bir vektör yerine bir valarray kullanmalıyım? Valarrays bazı sözdizimsel şeker, ama onun dışında biliyorum, ne zaman yararlıdır?

CEVAP
21 EKİM 2009, ÇARŞAMBA


valarray yanlış zamanda yanlış yerde doğmuş bir yetim gibi. Özellikle, Crays gibi vektör işlemciler ne zaman yazıldı ağır matematik için kullanılan makineler için optimizasyon, oldukça özel bir girişim.

Bir vektör işlemci, ne genellikle yapmak istiyordum oldu geçerli tek bir operasyon için tüm dizi, sonra Uygula sonraki operasyon için tüm dizi ve benzeri kadar istiyorum ve yaptığım her şey sana gereken şeyi.

Oldukça küçük diziler ile uğraşıyoruz sürece, ancak bu kadar kötü önbelleği ile çalışma eğilimindedir. En modern makineler, ne yapardın genellikle tercih (mümkünse) yük bölümü dizisi, tüm işlemleri üzerine gidiyorsun, sonra hareket için bir sonraki bölümü dizisi.

valarray da derleyici kaydeder değerlerini depolamak için daha fazla boş çünkü hızını artırmak sağlar aliasing ihtimalini ortadan kaldırmak gerekiyordu. Gerçekte, ancak, herhangi bir gerçek uygulama önemli ölçüde yararlanır pek emin değilim. Sanıyorum bunun yerine bir yumurta-tavuk tür bir sorun olmadan derleyici destek yaramadı popüler olmak ve sürece değil popüler, kimse gitmek sorun çalışma kendi derleyici için destek.

Ayrıca valarray ile kullanmak için yardımcı sınıfların (kelimenin tam anlamıyla) şaşırtıcı bir dizi var. Dilim, slice_array, gslice ve gslice_array bir valarray parçaları ile oynamak ve çok boyutlu bir dizi gibi davran. Ayrıca mask_array "maske" bir işlem (örneğin z sıfır olduğu pozisyonlarda y için x, öğeleri ekleyin). Yapmak daha önemsiz kullanım valarray, var bir şey öğrenmek hakkında bu yardımcı sınıfları, bazı ortaya oldukça karmaşık ve hiçbiri gibi görünüyor (en azından beni) çok iyi belgelenmiş.

Sonuç: dahiyane anları vardır, ve bazı şeyler oldukça düzgün bir şekilde yapmak mümkün olmakla birlikte, aynı zamanda (ve neredeyse kesinlikle kalır) belirsiz olduğunu çok iyi nedenleri vardır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Breno Rises

    Breno Rises

    7 Ocak 2014
  • CaptainDisillusion

    CaptainDisil

    18 EYLÜL 2007
  • StalkerJS

    StalkerJS

    15 HAZİRAN 2010