mirror of
https://github.com/robonen/canvas-3d.git
synced 2026-03-20 02:44:40 +00:00
feat(engine): wasm experiments
This commit is contained in:
7
packages/matrix/Dockerfile
Normal file
7
packages/matrix/Dockerfile
Normal file
@@ -0,0 +1,7 @@
|
||||
FROM ubuntu:22.04
|
||||
|
||||
MAINTAINER Robonen Andrew <robonenandrew@gmail.com>
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
RUN apt update && apt install -y clang lldb lld
|
||||
3
packages/matrix/build.sh
Normal file
3
packages/matrix/build.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
docker build -t llvm .
|
||||
7
packages/matrix/run.sh
Normal file
7
packages/matrix/run.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
docker run --rm \
|
||||
-v $(pwd)/src:/src \
|
||||
-v $(pwd)/dist:/dist \
|
||||
llvm \
|
||||
clang --target=wasm32 -O3 -fno-builtin -flto -nostdlib -Wl,--no-entry -Wl,--export-all -Wl,--lto-O3 -o /dist/matrix.wasm /src/matrix.c
|
||||
22
packages/matrix/src/matrix.c
Normal file
22
packages/matrix/src/matrix.c
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Matrix multiplication
|
||||
* C = A * B
|
||||
*/
|
||||
void matrix_mul(double *A, double *B, double *C, unsigned m, unsigned n, unsigned p)
|
||||
{
|
||||
unsigned i, j, k;
|
||||
double sum;
|
||||
|
||||
for (i = 0; i < m; i++)
|
||||
{
|
||||
for (j = 0; j < p; j++)
|
||||
{
|
||||
sum = 0;
|
||||
for (k = 0; k < n; k++)
|
||||
{
|
||||
sum += A[i * n + k] * B[k * p + j];
|
||||
}
|
||||
C[i * p + j] = sum;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
import {Vector} from './types';
|
||||
|
||||
Reference in New Issue
Block a user