UNPKG

bs-platform

Version:

bucklescript compiler, ocaml standard libary by bucklescript and its required runtime support

399 lines (332 loc) 10.5 kB
import * as Sys from "./sys.js"; import * as $$Array from "./array.js"; import * as Caml_array from "./caml_array.js"; import * as Caml_int32 from "./caml_int32.js"; import * as Caml_int64 from "./caml_int64.js"; import * as Pervasives from "./pervasives.js"; import * as Caml_external_polyfill from "./caml_external_polyfill.js"; function kind_size_in_bytes(param) { switch (param) { case /* Int16_signed */4 : case /* Int16_unsigned */5 : return 2; case /* Float32 */0 : case /* Int32 */6 : return 4; case /* Int */8 : case /* Nativeint */9 : return Sys.word_size / 8 | 0; case /* Float64 */1 : case /* Int64 */7 : case /* Complex32 */10 : return 8; case /* Complex64 */11 : return 16; case /* Int8_signed */2 : case /* Int8_unsigned */3 : case /* Char */12 : return 1; } } function dims(a) { var n = Caml_external_polyfill.resolve("caml_ba_num_dims")(a); var d = Caml_array.caml_make_vect(n, 0); for(var i = 0; i < n; ++i){ Caml_array.caml_array_set(d, i, Caml_external_polyfill.resolve("caml_ba_dim")(a, i)); } return d; } function size_in_bytes(arr) { return Caml_int32.imul(kind_size_in_bytes(Caml_external_polyfill.resolve("caml_ba_kind")(arr)), $$Array.fold_left(Caml_int32.imul, 1, dims(arr))); } function map_file(fd, posOpt, kind, layout, shared, dims) { var pos = posOpt !== undefined ? posOpt : Caml_int64.zero; return Caml_external_polyfill.resolve("caml_ba_map_file_bytecode")(fd, kind, layout, shared, dims, pos); } var Genarray = { dims: dims, size_in_bytes: size_in_bytes, map_file: map_file }; function create(kind, layout) { return Caml_external_polyfill.resolve("caml_ba_create")(kind, layout, []); } function get(arr) { return Caml_external_polyfill.resolve("caml_ba_get_generic")(arr, []); } function set(arr) { var partial_arg = []; return (function (param) { return Caml_external_polyfill.resolve("caml_ba_set_generic")(arr, partial_arg, param); }); } function size_in_bytes$1(arr) { return kind_size_in_bytes(Caml_external_polyfill.resolve("caml_ba_kind")(arr)); } function of_value(kind, layout, v) { var a = create(kind, layout); set(a)(v); return a; } function create$1(kind, layout, dim) { return Caml_external_polyfill.resolve("caml_ba_create")(kind, layout, [dim]); } function size_in_bytes$2(arr) { return Caml_int32.imul(kind_size_in_bytes(Caml_external_polyfill.resolve("caml_ba_kind")(arr)), Caml_external_polyfill.resolve("caml_ba_dim_1")(arr)); } function slice(a, n) { Caml_external_polyfill.resolve("caml_ba_layout")(a); return Caml_external_polyfill.resolve("caml_ba_slice")(a, [n]); } function of_array(kind, layout, data) { var ba = create$1(kind, layout, data.length); var ofs = layout ? 1 : 0; for(var i = 0 ,i_finish = data.length; i < i_finish; ++i){ Caml_external_polyfill.resolve("caml_ba_set_1")(ba, i + ofs | 0, Caml_array.caml_array_get(data, i)); } return ba; } function map_file$1(fd, pos, kind, layout, shared, dim) { return map_file(fd, pos, kind, layout, shared, [dim]); } function create$2(kind, layout, dim1, dim2) { return Caml_external_polyfill.resolve("caml_ba_create")(kind, layout, [ dim1, dim2 ]); } function size_in_bytes$3(arr) { return Caml_int32.imul(Caml_int32.imul(kind_size_in_bytes(Caml_external_polyfill.resolve("caml_ba_kind")(arr)), Caml_external_polyfill.resolve("caml_ba_dim_1")(arr)), Caml_external_polyfill.resolve("caml_ba_dim_2")(arr)); } function slice_left(a, n) { return Caml_external_polyfill.resolve("caml_ba_slice")(a, [n]); } function slice_right(a, n) { return Caml_external_polyfill.resolve("caml_ba_slice")(a, [n]); } function of_array$1(kind, layout, data) { var dim1 = data.length; var dim2 = dim1 === 0 ? 0 : Caml_array.caml_array_get(data, 0).length; var ba = create$2(kind, layout, dim1, dim2); var ofs = layout ? 1 : 0; for(var i = 0; i < dim1; ++i){ var row = Caml_array.caml_array_get(data, i); if (row.length !== dim2) { Pervasives.invalid_arg("Bigarray.Array2.of_array: non-rectangular data"); } for(var j = 0; j < dim2; ++j){ Caml_external_polyfill.resolve("caml_ba_set_2")(ba, i + ofs | 0, j + ofs | 0, Caml_array.caml_array_get(row, j)); } } return ba; } function map_file$2(fd, pos, kind, layout, shared, dim1, dim2) { return map_file(fd, pos, kind, layout, shared, [ dim1, dim2 ]); } function create$3(kind, layout, dim1, dim2, dim3) { return Caml_external_polyfill.resolve("caml_ba_create")(kind, layout, [ dim1, dim2, dim3 ]); } function size_in_bytes$4(arr) { return Caml_int32.imul(Caml_int32.imul(Caml_int32.imul(kind_size_in_bytes(Caml_external_polyfill.resolve("caml_ba_kind")(arr)), Caml_external_polyfill.resolve("caml_ba_dim_1")(arr)), Caml_external_polyfill.resolve("caml_ba_dim_2")(arr)), Caml_external_polyfill.resolve("caml_ba_dim_3")(arr)); } function slice_left_1(a, n, m) { return Caml_external_polyfill.resolve("caml_ba_slice")(a, [ n, m ]); } function slice_right_1(a, n, m) { return Caml_external_polyfill.resolve("caml_ba_slice")(a, [ n, m ]); } function slice_left_2(a, n) { return Caml_external_polyfill.resolve("caml_ba_slice")(a, [n]); } function slice_right_2(a, n) { return Caml_external_polyfill.resolve("caml_ba_slice")(a, [n]); } function of_array$2(kind, layout, data) { var dim1 = data.length; var dim2 = dim1 === 0 ? 0 : Caml_array.caml_array_get(data, 0).length; var dim3 = dim2 === 0 ? 0 : Caml_array.caml_array_get(Caml_array.caml_array_get(data, 0), 0).length; var ba = create$3(kind, layout, dim1, dim2, dim3); var ofs = layout ? 1 : 0; for(var i = 0; i < dim1; ++i){ var row = Caml_array.caml_array_get(data, i); if (row.length !== dim2) { Pervasives.invalid_arg("Bigarray.Array3.of_array: non-cubic data"); } for(var j = 0; j < dim2; ++j){ var col = Caml_array.caml_array_get(row, j); if (col.length !== dim3) { Pervasives.invalid_arg("Bigarray.Array3.of_array: non-cubic data"); } for(var k = 0; k < dim3; ++k){ Caml_external_polyfill.resolve("caml_ba_set_3")(ba, i + ofs | 0, j + ofs | 0, k + ofs | 0, Caml_array.caml_array_get(col, k)); } } } return ba; } function map_file$3(fd, pos, kind, layout, shared, dim1, dim2, dim3) { return map_file(fd, pos, kind, layout, shared, [ dim1, dim2, dim3 ]); } function array0_of_genarray(a) { if (Caml_external_polyfill.resolve("caml_ba_num_dims")(a) === 0) { return a; } else { return Pervasives.invalid_arg("Bigarray.array0_of_genarray"); } } function array1_of_genarray(a) { if (Caml_external_polyfill.resolve("caml_ba_num_dims")(a) === 1) { return a; } else { return Pervasives.invalid_arg("Bigarray.array1_of_genarray"); } } function array2_of_genarray(a) { if (Caml_external_polyfill.resolve("caml_ba_num_dims")(a) === 2) { return a; } else { return Pervasives.invalid_arg("Bigarray.array2_of_genarray"); } } function array3_of_genarray(a) { if (Caml_external_polyfill.resolve("caml_ba_num_dims")(a) === 3) { return a; } else { return Pervasives.invalid_arg("Bigarray.array3_of_genarray"); } } function reshape_0(a) { return Caml_external_polyfill.resolve("caml_ba_reshape")(a, []); } function reshape_1(a, dim1) { return Caml_external_polyfill.resolve("caml_ba_reshape")(a, [dim1]); } function reshape_2(a, dim1, dim2) { return Caml_external_polyfill.resolve("caml_ba_reshape")(a, [ dim1, dim2 ]); } function reshape_3(a, dim1, dim2, dim3) { return Caml_external_polyfill.resolve("caml_ba_reshape")(a, [ dim1, dim2, dim3 ]); } var float32 = /* Float32 */0; var float64 = /* Float64 */1; var complex32 = /* Complex32 */10; var complex64 = /* Complex64 */11; var int8_signed = /* Int8_signed */2; var int8_unsigned = /* Int8_unsigned */3; var int16_signed = /* Int16_signed */4; var int16_unsigned = /* Int16_unsigned */5; var $$int = /* Int */8; var int32 = /* Int32 */6; var int64 = /* Int64 */7; var nativeint = /* Nativeint */9; var $$char = /* Char */12; var c_layout = /* C_layout */0; var fortran_layout = /* Fortran_layout */1; function Array0_change_layout(prim, prim$1) { return Caml_external_polyfill.resolve("caml_ba_change_layout")(prim, prim$1); } var Array0 = { create: create, change_layout: Array0_change_layout, size_in_bytes: size_in_bytes$1, get: get, set: set, of_value: of_value }; function Array1_change_layout(prim, prim$1) { return Caml_external_polyfill.resolve("caml_ba_change_layout")(prim, prim$1); } var Array1 = { create: create$1, change_layout: Array1_change_layout, size_in_bytes: size_in_bytes$2, slice: slice, of_array: of_array, map_file: map_file$1 }; function Array2_change_layout(prim, prim$1) { return Caml_external_polyfill.resolve("caml_ba_change_layout")(prim, prim$1); } var Array2 = { create: create$2, change_layout: Array2_change_layout, size_in_bytes: size_in_bytes$3, slice_left: slice_left, slice_right: slice_right, of_array: of_array$1, map_file: map_file$2 }; function Array3_change_layout(prim, prim$1) { return Caml_external_polyfill.resolve("caml_ba_change_layout")(prim, prim$1); } var Array3 = { create: create$3, change_layout: Array3_change_layout, size_in_bytes: size_in_bytes$4, slice_left_1: slice_left_1, slice_right_1: slice_right_1, slice_left_2: slice_left_2, slice_right_2: slice_right_2, of_array: of_array$2, map_file: map_file$3 }; function reshape(prim, prim$1) { return Caml_external_polyfill.resolve("caml_ba_reshape")(prim, prim$1); } export { float32 , float64 , complex32 , complex64 , int8_signed , int8_unsigned , int16_signed , int16_unsigned , $$int , int32 , int64 , nativeint , $$char , kind_size_in_bytes , c_layout , fortran_layout , Genarray , Array0 , Array1 , Array2 , Array3 , array0_of_genarray , array1_of_genarray , array2_of_genarray , array3_of_genarray , reshape , reshape_0 , reshape_1 , reshape_2 , reshape_3 , } /* No side effect */