Genel bakış
Bu işlevler, giriş bağımsız değişkenlerini, n boyutlu uzayda vektörlerin gösterimi olarak yorumlar.
32 bitlik kayan noktalardaki matematik işlemlerinin hassasiyeti, pragmas rs_fp_relaxed ve rs_fp_full değerlerinden etkilenir. Ayrıntılar için Matematiksel Sabitler ve İşlevler bölümüne bakın.
Yaygın matematik fonksiyonlarının değişkenleri kullanılarak farklı hassasiyet/hız dengelemeleri elde edilebilir. ile başlayan bir ada sahip işlevler
- yerel_: Daha düşük kesinliğe sahip özel donanım uygulamaları içerebilir. Ayrıca, normal alt değerler sıfıra kaydırılabilir, sıfıra yuvarlama kullanılabilir ve NaN ve sonsuzluk girişi doğru şekilde işlenemez.
- fast_: 16 bit kayan öğeleri kullanarak dahili hesaplamalar yapabilir. Ayrıca, normal altı değerler sıfıra kaydırılabilir ve sıfıra yuvarlama kullanılabilir.
Özet
| Fonksiyonlar | |
|---|---|
| artı | İki vektörün çapraz çarpımı |
| mesafe | İki nokta arasındaki mesafe |
| nokta | İki vektörün nokta çarpımı |
| hızlı_distance | İki nokta arasındaki yaklaşık mesafe |
| Hızlı_uzunluk | Bir vektörün yaklaşık uzunluğu |
| hızlı_normalleştirme | Yaklaşık normalleştirilmiş vektör |
| length | Bir vektörün uzunluğu |
| yerel_mesafe | İki nokta arasındaki yaklaşık mesafe |
| yerel_uzunluk | Bir vektörün yaklaşık uzunluğu |
| yerel_normalleştirme | Bir vektörü yaklaşık olarak normalleştirme |
| normalleştir | Bir vektörü normalleştirme |
Fonksiyonlar
çapraz : İki vektörün çapraz çarpımı
| float3 cross(float3 sol_vektör, float3 sağ_vektör); | |
| float4 cross(float4 sol_vektör, float4 sağ_vektör); | |
| half3 cross(half3 left_Vektör, half3 right_Vektör); | API düzeyi 24'te eklendi |
| half4 cross(yarım4 sol_vektör, yarım4 sağ_vektör); | API düzeyi 24'te eklendi |
İki vektörün çapraz çarpımını hesaplar.
mesafe : İki nokta arasındaki mesafe
| float length(float left_Vektör, float right_window); | |
| bolluk mesafesi(float2 sol_vektör, float2 sağ_vektör); | |
| floatground(float3 left_Vektör, float3 right_Vektör); | |
| bolluk mesafesi(float4 sol_vektör, float4 sağ_vektör); | |
| yarım mesafe(yarım sol_vektör, yarım sağ_vektör); | API düzeyi 24'te eklendi |
| yarım mesafe(yarım2 sol_vektör, yarım2 sağ_vektör); | API düzeyi 24'te eklendi |
| yarım mesafe(yarım3 sol_vektör, yarım3 sağ_vektör); | API düzeyi 24'te eklendi |
| yarım mesafe(yarım4 sol_vektör, yarım4 sağ_vektör); | API düzeyi 24'te eklendi |
İki nokta arasındaki mesafeyi hesaplayın.
Ayrıca bkz. Hızlı_distance(), native_distance().
nokta : İki vektörün nokta çarpımı
| kayan nokta(kayan sol_vektör, kayan sağ_vektör); | |
| kayan nokta(float2 sol_vektör, float2 sağ_vektör); | |
| kayan nokta(float3 sol_vektör, kayan3 sağ_vektör); | |
| kayan nokta(float4 sol_vektör, float4 sağ_vektör); | |
| yarım nokta(yarım sol_vektör, yarım sağ_vektör); | API düzeyi 24'te eklendi |
| half nokta(yarım2 sol_vektör, yarım2 sağ_vektör); | API düzeyi 24'te eklendi |
| half nokta(yarım3 sol_vektör, yarım3 sağ_vektör); | API düzeyi 24'te eklendi |
| half nokta(yarım4 sol_vektör, yarım4 sağ_vektör); | API düzeyi 24'te eklendi |
İki vektörün nokta çarpımını hesaplar.
Hızlı_distance : İki nokta arasındaki yaklaşık mesafe
| float fast_distance(float sol_vektör, float sağ_vektör); | API düzeyi 17'de eklendi |
| float fast_distance(float2 sol_vektör, float2 sağ_vektör); | API düzeyi 17'de eklendi |
| float fast_distance(float3 left_Vektör, float3 right_Vektör); | API düzeyi 17'de eklendi |
| float fast_distance(float4 sol_vektör, float4 sağ_vektör); | API düzeyi 17'de eklendi |
İki nokta arasındaki yaklaşık mesafeyi hesaplar.
Hassasiyet, hesaplamayı 16 bit kayan nokta değerleri kullanarak yapmaktan beklenen değerdir.
Ayrıca bkz. distance(), native_distance().
Hızlı_uzunluk : Bir vektörün yaklaşık uzunluğu
| float fast_length(float v); | API düzeyi 17'de eklendi |
| float fast_length(float2 v); | API düzeyi 17'de eklendi |
| float fast_length(float3 v); | API düzeyi 17'de eklendi |
| float fast_length(float4 v); | API düzeyi 17'de eklendi |
Bir vektörün yaklaşık uzunluğunu hesaplar.
Hassasiyet, hesaplamayı 16 bit kayan nokta değerleri kullanarak yapmaktan beklenen değerdir.
Ayrıca bkz. length(), native_length().
Fast_normalize : Yaklaşık normalleştirilmiş vektör
| float fast_normalize(float v); | API düzeyi 17'de eklendi |
| float2 fast_normalize(float2 v); | API düzeyi 17'de eklendi |
| float3 fast_normalize(float3 v); | API düzeyi 17'de eklendi |
| float4 fast_normalize(float4 v); | API düzeyi 17'de eklendi |
Bir vektörü yaklaşık olarak normalleştirir.
1 boyutlu vektörlerde negatif değerler için -1.f, null değerler için 0.f ve pozitif değerler için 1.f değerini döndürür.
Hassasiyet, hesaplamayı 16 bit kayan nokta değerleri kullanarak yapmaktan beklenen değerdir.
Ayrıca bkz. normalize(), native_normalize().
length : Bir vektörün uzunluğu
| kayan nokta uzunluğu(kayan noktalı v); | |
| kayan nokta uzunluğu(float2 v); | |
| float length(float3 v); | |
| kayan nokta uzunluğu(float4 v); | |
| yarım uzunluk(yarım v); | API düzeyi 24'te eklendi |
| yarım length(half2 v); | API düzeyi 24'te eklendi |
| yarım length(half3 v); | API düzeyi 24'te eklendi |
| yarım length(half4 v); | API düzeyi 24'te eklendi |
Bir vektörün uzunluğunu hesaplar.
Ayrıca bkz. Hızlı_uzunluk(), native_length().
native_distance : İki nokta arasındaki yaklaşık mesafe
| float Native_distance(float left_Vektör, float right_Vektör); | API düzeyi 21'de eklendi |
| float Native_distance(float2 left_Vektör, float2 right_Vektör); | API düzeyi 21'de eklendi |
| float Native_distance(float3 left_Vektör, float3 right_Vektör); | API düzeyi 21'de eklendi |
| float local_distance(float4 left_Vektör, float4 right_Vektör); | API düzeyi 21'de eklendi |
| yarı yerel_distance(yarım sol_vektör, yarım sağ_vektör); | API düzeyi 24'te eklendi |
| yarı yerel_distance(yarım2 sol_vektör, yarım2 sağ_vektör); | API düzeyi 24'te eklendi |
| yarı yerel_distance(yarım3 sol_vektör, yarım3 sağ_vektör); | API düzeyi 24'te eklendi |
| yarı yerel_distance(yarım4 sol_vektör, yarım4 sağ_vektör); | API düzeyi 24'te eklendi |
İki nokta arasındaki yaklaşık mesafeyi hesaplar.
Ayrıca bkz. distance(), Fast_distance().
native_length : Bir vektörün yaklaşık uzunluğu
| float Native_length(float v); | API düzeyi 21'de eklendi |
| float yerel_length(float2 v); | API düzeyi 21'de eklendi |
| float Native_length(float3 v); | API düzeyi 21'de eklendi |
| float Native_length(float4 v); | API düzeyi 21'de eklendi |
| half Native_length(half v); | API düzeyi 24'te eklendi |
| half Native_length(half2 v); | API düzeyi 24'te eklendi |
| half Native_length(half3 v); | API düzeyi 24'te eklendi |
| half Native_length(half4 v); | API düzeyi 24'te eklendi |
Bir vektörün yaklaşık uzunluğunu hesaplayın.
Ayrıca bkz. length(), Fast_length().
native_normalize : Bir vektörü yaklaşık olarak normalleştirin
| float Native_normalize(float v); | API düzeyi 21'de eklendi |
| float2 Native_normalize(float2 v); | API düzeyi 21'de eklendi |
| float3 Native_normalize(float3 v); | API düzeyi 21'de eklendi |
| float4 Native_normalize(float4 v); | API düzeyi 21'de eklendi |
| half local_normalize(half v); | API düzeyi 24'te eklendi |
| half2 Native_normalize(half2 v); | API düzeyi 24'te eklendi |
| half3 Native_normalize(yarı3 v); | API düzeyi 24'te eklendi |
| half4 Native_normalize(half4 v); | API düzeyi 24'te eklendi |
Bir vektörü yaklaşık olarak normalleştirir.
Ayrıca bkz. normalize(), Fast_normalize().
normalize : Bir vektörü normalleştirme
| float normalize(float v); | |
| float2 normalize(float2 v); | |
| float3 normalize(float3 v); | |
| float4 normalize(float4 v); | |
| half normalize(half v); | API düzeyi 24'te eklendi |
| half2 normalize(half2 v); | API düzeyi 24'te eklendi |
| half3 normalize(half3 v); | API düzeyi 24'te eklendi |
| half4 normalize(half4 v); | API düzeyi 24'te eklendi |
Bir vektörü normalleştirme.
1 boyutlu vektörlerde negatif değerler için -1.f, null değerler için 0.f ve pozitif değerler için 1.f değerini döndürür.
Ayrıca bkz. Hızlı_normalize(), native_normalize().