• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15function SumArrayU8(nums: @arraybuffer Array<u8>): u8;
16function GetArrayBuffer(nums: u8): @arraybuffer Array<u8>;
17function DoubleArrayBuffer(nums: @arraybuffer Array<u8>): @arraybuffer Array<u8>;
18function SumArrayI8(nums: Array<i8>): i8;
19function GetArrayI8(nums: i8): Array<i8>;
20function DoubleI8(nums: Array<i8>): Array<i8>;
21function SumArrayI16(nums: Array<i16>): i16;
22function GetArrayI16(nums: i16): Array<i16>;
23function DoubleI16(nums: Array<i16>): Array<i16>;
24function SumArrayI32(nums: Array<i32>): i32;
25function GetArrayI32(nums: i32): Array<i32>;
26function DoubleI32(nums: Array<i32>): Array<i32>;
27function SumArrayI64(nums: Array<i64>): i64;
28function GetArrayI64(nums: i64): Array<i64>;
29function DoubleI64(nums: Array<i64>): Array<i64>;
30
31function SumArrayF32(nums: Array<f32>): f32;
32function GetArrayF32(nums: f32): Array<f32>;
33function DoubleF32(nums: Array<f32>): Array<f32>;
34
35function SumArrayF64(nums: Array<f64>): f64;
36function GetArrayF64(nums: f64): Array<f64>;
37function DoubleF64(nums: Array<f64>): Array<f64>;
38
39function DoubleBufferToInt8Array(nums: @arraybuffer Array<u8>): @arraybuffer Array<u8>;
40function DoubleBufferToInt16Array(nums: @arraybuffer Array<u8>): @arraybuffer Array<u8>;
41function DoubleBufferToInt32Array(nums: @arraybuffer Array<u8>): @arraybuffer Array<u8>;
42function DoubleBufferToUint16Array(nums: @arraybuffer Array<u8>): @arraybuffer Array<u8>;
43function DoubleBufferToUint32Array(nums: @arraybuffer Array<u8>): @arraybuffer Array<u8>;
44@!sts_inject("""
45export function doubleInt8Array(int8Array: Int8Array): Int8Array  {
46    const arrayBuffer: ArrayBuffer = int8Array.buffer as ArrayBuffer;
47    let result = DoubleBufferToInt8Array(arrayBuffer);
48    return new Int8Array(result);
49}
50""")
51
52@!sts_inject("""
53export function doubleInt16Array(int16Array: Int16Array): Int16Array  {
54    const arrayBuffer: ArrayBuffer = int16Array.buffer as ArrayBuffer;
55    let result = DoubleBufferToInt16Array(arrayBuffer);
56    return new Int16Array(result);
57}
58""")
59
60@!sts_inject("""
61export function doubleInt32Array(int32Array: Int32Array): Int32Array  {
62    const arrayBuffer: ArrayBuffer = int32Array.buffer as ArrayBuffer;
63    let result = DoubleBufferToInt32Array(arrayBuffer);
64    return new Int32Array(result);
65}
66""")
67
68@!sts_inject("""
69export function doubleUint8Array(uint8Array: Uint8Array): Uint8Array  {
70    const arrayBuffer: ArrayBuffer = uint8Array.buffer as ArrayBuffer;
71    let result = DoubleArrayBuffer(arrayBuffer);
72    return new Uint8Array(result);
73}
74""")
75
76@!sts_inject("""
77export function doubleUint16Array(uint16Array: Uint16Array): Uint16Array  {
78    const arrayBuffer: ArrayBuffer = uint16Array.buffer as ArrayBuffer;
79    let result = DoubleBufferToUint16Array(arrayBuffer);
80    return new Uint16Array(result);
81}
82""")
83
84@!sts_inject("""
85export function doubleUint32Array(uint32Array: Uint32Array): Uint32Array  {
86    const arrayBuffer: ArrayBuffer = uint32Array.buffer as ArrayBuffer;
87    let result = DoubleBufferToUint32Array(arrayBuffer);
88    return new Uint32Array(result);
89}
90""")