docs / stdlib / math

Stdlib index
  1. Overview
  1. Captured-borrow migration worklist (3.3.3)
  2. Owned-bind migration worklist (8.2.7)
  3. Return-side title audit — the ride-through enumeration
  4. stdlib ownership audit
  5. stdlib ownership dispositions (plan 1.3.1 / 4.3.1)

aot

  1. Components
  2. Scope
  3. Scoped

codec

  1. Base32
  2. Base64

codec / csv

  1. Csv

codec / json

  1. Json

collection

  1. ArrayList
  2. BPlusTree
  3. Cache
  4. Collectors
  5. HashMap
  6. HashSet
  7. Heap
  8. ImmutableList
  9. ImmutableMap
  10. ImmutableSet
  11. LinkedList
  12. RedBlackTree
  13. Sort

collection / ltm

  1. LtmBPlusTree

concurrent

  1. AtomicInt32
  2. AtomicInt64
  3. Channel
  4. Fiber
  5. FiberLocal
  6. Lock
  7. Mutex
  8. RwLock
  9. Semaphore
  10. Tasks

error

  1. Exception
  2. NoOptionalValueException
  3. NotProvidedException
  4. RecoverableException
  5. ScopedBuildFailedException
  6. ScopeNotActiveException
  7. Throwable
  8. UnrecoverableException

gfx

  1. Sampler
  2. Texture2D

hash

  1. DefaultHasher
  2. Hash
  3. SipHash
  4. XXHash3

ifx

  1. BackendRegistry
  2. Window

io

  1. Buffer

io / file

  1. File
  2. FileInfo
  3. FileReader
  4. FileWriter
  5. Path
  6. Watcher

io / net

  1. BufferPool
  2. ByteBuffer
  3. IpAddress
  4. Server
  5. ServerBuilder
  6. SocketAddress
  7. TcpListener
  8. TcpStream
  9. UdpSocket

io / net / dns

  1. Dns

io / net / uri

  1. Uri
  2. UriBuilder

lang

  1. Guid
  2. Math
  3. Optional
  4. Pair
  5. Slice
  6. String
  7. StringBuilder

lang / stream

  1. ArrayStream
  2. Stream

math

  1. Camera
  2. Color
  3. DType
  4. Ray
  5. Rotation
  6. Tensor
  7. Transform

math / fft

  1. Fft

math / linalg

  1. LinAlg

math / npio

  1. Npy

math / poly

  1. Poly

math / random

  1. Generator

math / stats

  1. Stats

nucleo

  1. Columns — the Arrow-laid-out substrate
  2. Fused tensor expressions — Fuse
  3. Table — the lazy, typed dataframe
  4. Tape — define-by-run autograd
  5. Transform intrinsics — Grad, Vmap, Jit

process

  1. Command
  2. Process

reflect

  1. Class

search / distance

  1. Distance

search / fuzzy

  1. Matcher

search / ngram

  1. Index

session

  1. PackageInstallException
  2. Packages

time

  1. Clock
  2. DateTimeFormatter
  3. Duration
  4. Instant
  5. LocalDate
  6. LocalDateTime
  7. LocalTime
  8. Period
  9. ZonedDateTime
  10. ZoneId
  11. ZoneOffset

wire

  1. Compressor
  2. CompressStream
  3. DecompressionLimitException
  4. Decompressor
  5. Encoder
  6. Schema
  7. SchemaEncoder

xpu

  1. Device
  2. KernelBuffer
  3. KernelStream
  4. KernelTimer

xpu / mesh

  1. MeshSimplifier

DType

cajeta.math.DType — a numeric dtype descriptor: the runtime value that identifies an element type’s kind, bit width, and signedness. A Tensor<T> carries its dtype in the reified type parameter T; a DType value is what the NEP-50 type-promotion table (promote) and the runtime-dtype paths reason over. Identity is (kind, bits, variant) — variant distinguishes same-width floats (float16 vs bfloat16, the four float8 encodings). The v1 dtype set covers bool, int8..128, uint8..128, float16..128, bfloat16, and the float8/float6/float4 variants; complex64/128 are reserved (the Complex bound exists, but no concrete complex primitive yet).

package snip.dtype;

import cajeta.math.DType;

public final class Demo {
    public static void run() {
        DType f #= DType.of<float32>();     // type → DType bridge
        DType i #= DType.i32();
        DType r #= DType.promote(f, i);     // NEP-50: float32
        boolean fl = r.isFloating();       // true
        int32 width = r.bits();            // 32
        return;
    }
}

Methods

Signature
Descriptor
DType(int32 kindCode, int32 bitWidth, int32 variantCode)Build a descriptor from kind, bit width, and variant codes
int32 kind()Kind code (KIND_BOOL / KIND_INT / KIND_UINT / KIND_FLOAT / KIND_COMPLEX)
int32 bits()Bit width
int32 variant()Variant code (distinguishes same-width float encodings)
int32 bytes()Bytes per element
boolean equals(DType other)Same (kind, bits, variant) identity
Category predicates
boolean isBool()Kind is bool
boolean isSignedInt()Kind is signed int
boolean isUnsignedInt()Kind is unsigned int
boolean isIntegral()Signed or unsigned int
boolean isFloating()Kind is floating
boolean isComplex()Kind is complex (reserved)
boolean isNumeric()Any numeric kind (not bool)
boolean isSigned()Signed in the sign-bit sense: signed ints, floats, complex (not bool, not uint)
Named factories
static #DType boolType()bool
static #DType i8()int8
static #DType i16()int16
static #DType i32()int32
static #DType i64()int64
static #DType i128()int128
static #DType u8()uint8
static #DType u16()uint16
static #DType u32()uint32
static #DType u64()uint64
static #DType u128()uint128
static #DType f16()float16
static #DType f32()float32
static #DType f64()float64
static #DType f128()float128
static #DType bf16()bfloat16
static #DType f8e4m3()float8 e4m3
static #DType f8e5m2()float8 e5m2
static #DType f8e4m3fnuz()float8 e4m3fnuz
static #DType f8e5m2fnuz()float8 e5m2fnuz
static #DType f6e2m3()float6 e2m3
static #DType f6e3m2()float6 e3m2
static #DType f4e2m1()float4 e2m1
Type bridge and promotion
static int32 codeOf<T>()Compiler intrinsic: the packed dtype code of T, (kind << 16) | (bits << 4) | variant
static #DType of<T>() ⚑The DType descriptor of the static type parameter T — the bridge Tensor<T>.dtype() is built on
static #DType promote(DType a, DType b) ⚑NEP-50 type-based promotion: the result dtype of a binary op on operands of dtypes a and b, from the types (never the values)

⚑ = @EntryPoint

See also

Source: docs/stdlib/math/DType.md · 2 min read · 538 words