jlbun
    Preparing search index...

    Class JuliaRange

    Wrapper for Julia Range types (UnitRange, StepRange, StepRangeLen, LinRange).

    Julia ranges are lazy sequences that don't allocate memory for all elements. They only store start, stop, and step (if applicable).

    • UnitRange{T} - step is 1, e.g., 1:10
    • StepRange{T,S} - with explicit step, e.g., 1:2:10
    • StepRangeLen{T,R,S} - floating point ranges, e.g., range(0, 1, length=11)
    • LinRange{T} - linearly spaced, e.g., LinRange(0, 1, 11)
    // Create ranges via Julia
    const unitRange = Julia.eval("1:10") as JuliaRange;
    const stepRange = Julia.eval("1:2:10") as JuliaRange;
    const linRange = Julia.eval("LinRange(0.0, 1.0, 11)") as JuliaRange;

    // Properties
    console.log(unitRange.first.value); // 1
    console.log(unitRange.last.value); // 10
    console.log(unitRange.length); // 10
    console.log(stepRange.step.value); // 2

    // Indexing (0-based)
    console.log(unitRange.get(0).value); // 1
    console.log(unitRange.get(9).value); // 10

    // Convert to array
    const arr = unitRange.value; // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    // Create range using factory method
    const range1 = JuliaRange.from(1, 10); // 1:10
    const range2 = JuliaRange.from(1, 10, 2); // 1:2:9
    const range3 = JuliaRange.linspace(0, 1, 5); // LinRange(0.0, 1.0, 5)

    Implements

    Index

    Constructors

    Properties

    ptr: Pointer

    Accessors

    • get isEmpty(): boolean

      Check if the range is empty.

      Returns boolean

    • get length(): number

      Number of elements in the range.

      Returns number

    • get value(): any[]

      Convert the range to an array. Note: This allocates memory for all elements.

      Returns any[]

      Array of values.

    Methods

    • Iterate over the range elements.

      Returns Iterator<JuliaValue>

      const range = JuliaRange.from(1, 5);
      for (const val of range) {
      console.log(val.value); // 1, 2, 3, 4, 5
      }
    • Check if the range contains a value.

      Parameters

      • value: number | bigint | JuliaValue

        Value to check.

      Returns boolean

      true if the range contains the value.

    • Get element at the given index (0-based).

      Parameters

      • index: number

        The index (0-based).

      Returns JuliaValue

      The element at the given index.

    • Create a range from start to stop with optional step.

      Parameters

      • start: number | bigint

        Start value (inclusive).

      • stop: number | bigint

        Stop value (inclusive for UnitRange, may not be included for StepRange).

      • Optionalstep: number | bigint

        Optional step value. If omitted, creates a UnitRange with step=1.

      Returns JuliaRange

      A new JuliaRange.

      const r1 = JuliaRange.from(1, 10);     // 1:10 (UnitRange)
      const r2 = JuliaRange.from(1, 10, 2); // 1:2:9 (StepRange)
    • Create a linearly spaced range (LinRange).

      Parameters

      • start: number

        Start value.

      • stop: number

        Stop value.

      • length: number

        Number of elements.

      Returns JuliaRange

      A new JuliaRange (LinRange type).

      const r = JuliaRange.linspace(0, 1, 5);
      // Values: [0.0, 0.25, 0.5, 0.75, 1.0]
    • Create a range with specified length using Base.range().

      Parameters

      • start: number

        Start value.

      • length: number

        Number of elements.

      • step: number

        Step value.

      Returns JuliaRange

      A new JuliaRange.

      const r = JuliaRange.withLength(0, 5, 0.1);
      // Values: [0.0, 0.1, 0.2, 0.3, 0.4]