StarGate01 / Full-Stack-Fortran

Fortran to WebAssembly
Mozilla Public License 2.0
150 stars 10 forks source link

Complex number support #2

Open StarGate01 opened 3 years ago

StarGate01 commented 3 years ago

Support complex numbers in BLAS and LAPACK.

StarGate01 commented 3 years ago

Using the latest version of emscripten, I managed to compile LAPACK and BLAS for complex numbers, and they seem to work. Basic complex arithmetic also works.

However, Fortran intrinsics such as EXP still cause compiler issues when used with complex numbers. I don't know if that is a bug in LLVM or if gfortran needs to be reconfigured. It seems like the exp call is routed to the double implementation instead of the complex one, or the signatures don't match. Maybe gfortran could do something with the ff2c option?

Anyway, I pushed the updated Docker image to the Docker Hub, where the updated liblapack.a and librefblas.a are contained.

wasm-validator error in function 93] call param types must match, on 
(call $96
 (f64.const 1)
 (f64.const 0)
)
(on argument 0)
[wasm-validator error in function 93] call param types must match, on 
(call $96
 (f64.const 1)
 (f64.const 0)
)
(on argument 1)