matmul
FP matrix multiplication
- extensions
- raw README.md
- raw benchmark.4th
- raw matmul.4th
- raw package.4th
- raw runbenchs
- raw test.4th
\ matrix muliplication benchmark [undefined] {: [if] [undefined] parse-name [if] s" extensions/parse-name.fs" included [then] s" extensions/locals.fs" included [then] : init-matrix {: m ncols nrows nstart -- :} \ initialize m with floats nstart, nstart+1, ... nstart nrows 0 ?do ncols 0 ?do dup 0 d>f m j ncols * i + floats + f! 1+ loop loop drop ; 500 constant dim dim dup * floats allocate throw constant a a dim dim 1 init-matrix dim dup * floats allocate throw constant b b dim dim 30000 init-matrix dim dup * floats allocate throw constant c a b c dim dim dim matmulr fvariable sum 0. d>f sum f! : checksum ( m ncols nrows -- x ) * 0 ?do ( m1 ) dup f@ sum f@ f+ sum f! float+ loop drop ; [defined] f~ [if] c dim dup checksum sum f@ 2423178953093560000. d>f -1e-5 f~ 0= [if] .( result incorrect ) cr [else] .( result correct) cr [then] [then]
by AntonErtl
Versions
2.0.2, 2.0.1, 2.0.0, 1.0.2, 1.0.1, 1.0.0
Tags
ansforth94, forth-94, forth-2012, floating-point-arithmetic, benchmark
Dependencies
None
Dependents
None