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

  • SDSARG3

    SDSARG3

    14 Mart 2009
  • Submissions101

    Submissions1

    23 ŞUBAT 2007
  • tunez4you

    tunez4you

    20 EKİM 2008