Ana içeriğe geç
Dil v0.2.0 · Ön izleme

Ölçüm sonrası sınırlı tipli değerler

Immutable Int, Float, sabit diziler, açık ölçüm dönüşümleri, deterministik runtime kanıtı ve fail-closed sayısal sınırları uzlaştırın.

Kuantum sınırında tipli classical değerler

NM-RFC-0005 ölçüm sonrası birleştirmeyi açık ve sınırlı hale getirir. Her yüzey özelliği uzlaştırana kadar kararlı N/M 0.1 Bit davranışı değişmez.

NM-RFC-0005deneysel0.2.0-runtime-experimental
256
maksimum dizi uzunluğu
52
bits_to_int genişliği
1.000.000.000.000
maksimum |Float|

Immutable skaler değerler

Int güvenli tam sayı, Float ise sonlu ve sınırlıdır. Sayısal genişletme açık olduğundan örneklenmiş bir Bit aritmetiğe sessizce giremez.

let ratio: Float = int_to_float(count) / 3.0;

Sabit sınırlı diziler

Array<Bit|Int|Float, N>, eleman tipini ve 1..256 uzunluğunu kaynakta sabitler. İndeksler derleme zamanı literal'ıdır ve yürütmeden önce denetlenir.

let bits: Array<Bit, 3> = [a, b, c];

Güvenli ölçüm yardımcıları

bit_to_int, bits_to_int, count_ones, int_to_float ve mean; genel amaçlı mutable durum eklemeden ilk deterministik birleştirme sınırını kapsar.

bit_to_int · int_to_float · bits_to_int · count_ones · mean · sin · cos · sqrt · exp · log · log1p · expm1 · tanh · sigmoid · abs · floor · ceil · round · min · max · clamp · sum · dot · norm · add · sub · scale · variance · stddev · argmin · argmax · radians · degrees · to_radians · to_degrees

Sıralı runtime kanıtı

Core ve Worker aynı sıralı ad, canonical tip, değer ve kaynak satırı kanıtını sunar. Eksik değerler ve geçersiz aritmetik fail-closed sonlanır.

deterministic-fail-closed-with-ordered-evidence

Ölçüm birleştirme örneği

module typed_measurement_summary;@seed(17); fn main() {  let q: QReg<3> = qreg[3];  H(q[0]);  CNOT(q[0], q[1]);  let a: Bit = measure(q[0]);  let b: Bit = measure(q[1]);  let c: Bit = measure(q[2]);  let outcomes: Array<Bit, 3> = [a, b, c];  let encoded: Int = bits_to_int(outcomes);  let ones: Int = count_ones(outcomes);  let ratio: Float = int_to_float(ones) / 3.0;  return encoded;}

Açık yüzey uzlaşması

parseNMCode(source, { experimental: { typedClassicalValues: true } })nm run main.nm --experimental-typed-classical-values --jsoninitializationOptions.nm.experimental.typedClassicalValues = truenm.experimental.typedClassicalValues = true

Kararlı tanılar

NM-PARSE-062NM-PARSE-063NM-TYPE-023NM-TYPE-024NM-RUNTIME-032

İlk sözleşme mutation, dinamik indeks, iç içe dizi, keyfi classical fonksiyon, implicit cast ve branch-sensitive sonuç çıkarımını kapsamaz. NM-RFC-0007 yapılandırılmış main sonuçlarını yalnız ayrı uzlaşmayla ekler.