File: test_tensor_complex.py

package info (click to toggle)
llvm-toolchain-17 1%3A17.0.6-22
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,799,624 kB
  • sloc: cpp: 6,428,607; ansic: 1,383,196; asm: 793,408; python: 223,504; objc: 75,364; f90: 60,502; lisp: 33,869; pascal: 15,282; sh: 9,684; perl: 7,453; ml: 4,937; awk: 3,523; makefile: 2,889; javascript: 2,149; xml: 888; fortran: 619; cs: 573
file content (31 lines) | stat: -rw-r--r-- 930 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# RUN: env SUPPORTLIB=%mlir_c_runner_utils %PYTHON %s | FileCheck %s
import numpy as np
import os
import sys

_SCRIPT_PATH = os.path.dirname(os.path.abspath(__file__))
sys.path.append(_SCRIPT_PATH)
from tools import mlir_pytaco_api as pt

compressed = pt.compressed

passed = 0
all_types = [pt.complex64, pt.complex128]
for t in all_types:
    i, j = pt.get_index_vars(2)
    A = pt.tensor([2, 3], dtype=t)
    B = pt.tensor([2, 3], dtype=t)
    C = pt.tensor([2, 3], compressed, dtype=t)
    A.insert([0, 1], 10 + 20j)
    A.insert([1, 2], 40 + 0.5j)
    B.insert([0, 0], 20)
    B.insert([1, 2], 30 + 15j)
    C[i, j] = A[i, j] + B[i, j]

    indices, values = C.get_coordinates_and_values()
    passed += isinstance(values[0], t.value)
    passed += np.array_equal(indices, [[0, 0], [0, 1], [1, 2]])
    passed += np.allclose(values, [20, 10 + 20j, 70 + 15.5j])

# CHECK: Number of passed: 6
print("Number of passed:", passed)