[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/BrentMat/iPython/main/integration_tests/array_01_decl.py [Back]  [Original]

from lpython import i16, i32, i64, f32, f64, c32, c64
from numpy import empty, int16, int32, int64, float32, float64, complex64, complex128
from enum import Enum

class ArraySizes(Enum):
    SIZE_3: i32 = 3
    SIZE_10: i32 = 10

def accept_i16_array(xi16: i16[:]) -> i16:
    xi16[2] = i16(32)
    return xi16[2]

def accept_i32_array(xi32: i32[:]) -> i32:
    xi32[1] = 32
    return xi32[1]

def accept_i64_array(xi64: i64[:]) -> i64:
    xi64[1] = i64(64)
    return xi64[1]

def accept_f32_array(xf32: f32[:]) -> f32:
    xf32[1] = f32(32.0)
    return xf32[1]

def accept_f64_array(xf64: f64[:]) -> f64:
    xf64[0] = 64.0
    return xf64[0]

def declare_arrays():
    ai16: i16[ArraySizes.SIZE_3.value] = empty(ArraySizes.SIZE_3.value, dtype=int16)
    ai32: i32[ArraySizes.SIZE_3] = empty(ArraySizes.SIZE_3.value, dtype=int32)
    ai64: i64[10] = empty(10, dtype=int64)
    af32: f32[3] = empty(3, dtype=float32)
    af64: f64[ArraySizes.SIZE_10] = empty(10, dtype=float64)
    ac32: c32[ArraySizes.SIZE_3] = empty(3, dtype=complex64)
    ac64: c64[10] = empty(10, dtype=complex128)
    print(accept_i16_array(ai16))
    print(accept_i32_array(ai32))
    print(accept_i64_array(ai64))
    print(accept_f32_array(af32))
    print(accept_f64_array(af64))

declare_arrays()

Web Proxy Viewer  |  New URL  |  Original Page