Git Product home page Git Product logo

numericals's Introduction

numericals

THIS PROJECT IS STILL EXPERIMENTAL. THINGS ARE SUBJECT TO CHANGE, although the interface and tests haven't changed since the beginning, about 2 years ago.

See digikar99.github.io/numericals/ for documentation.

numericals's People

Contributors

digikar99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

numericals's Issues

Some systems failed to build for Quicklisp dist

Building with SBCL 2.3.3.83-562a1a329 / ASDF 3.3.5 for quicklisp dist creation.

Trying to build commit id c8dd3ab

dense-numericals fails to build with the following error:

Unhandled ASDF/FIND-COMPONENT:MISSING-DEPENDENCY in thread #<SB-THREAD:THREAD tid=542952 "main thread" RUNNING {1001738003}>: Component "dense-arrays+static-vectors" not found, required by #<SYSTEM "dense-numericals">

dense-numericals/magicl fails to build with the following error:

Unhandled ASDF/FIND-COMPONENT:MISSING-DEPENDENCY in thread #<SB-THREAD:THREAD tid=542948 "main thread" RUNNING {1001738003}>: Component "dense-arrays+static-vectors" not found, required by #<SYSTEM "dense-numericals">

numericals/benchmarks fails to build with the following error:

; caught ERROR:
;   READ error during COMPILE-FILE: Package TRIVIAL-COERCE does not exist. Line: 21, Column: -1, File-Position: 465 Stream: #<SB-INT:FORM-TRACKING-STREAM for "file /home/quicklisp/quicklisp-controller/dist/build-cache/numericals/372c3a674706749c1f5a7b55b8171c33037c6142/numericals-2023.05.0/benchmarks/benchmark.lisp" {1015455A03}>
...
Unhandled UIOP/LISP-BUILD:COMPILE-FILE-ERROR in thread #<SB-THREAD:THREAD tid=542956 "main thread" RUNNING {1001730113}>: COMPILE-FILE-ERROR while compiling #<CL-SOURCE-FILE "numericals/benchmarks" "benchmark">

Full log here

Use the concept of verb rank from array programming

The current notion of broadcasting adapted from numpy has been argued to be ugly on this reddit thread because it violates the pitman's two-bit rule.

Some exploration about this topic has suggested that the two bits of information, here, are (i) what are the arrays you want to operate on (ii) what is the operation you want to perform. Broadcasting properly for more-than-trivial use cases involves doing it correctly for not just the simple monadic trigonometric and dyadic arithmetic operators, but also for other operators such as matrix-multiply, concatenation, horizontal-reductions, determinants, matrix equation solving and perhaps many more. The programming language J - but not numpy - seems to keep these two bits separate, and involves the notion of ranks for both nouns aka arrays, as well as verbs aka operators or functions.

Some references for anyone who attempts to reimplement the basics while taking verb ranks into account:

  1. https://en.wikipedia.org/wiki/Rank_(J_programming_language)
  2. https://procyonic.org/blog/aping-js-verb-rank-in-puff/
  3. https://dl.acm.org/doi/pdf/10.1145/206944.206992

And perhaps also see the above reddit thread by u/moon-chilled!

Some systems failed to build for Quicklisp dist

Building with SBCL 2.3.1.122-1455d60f6 / ASDF 3.3.5 for quicklisp dist creation.

Trying to build commit id 69bfa08

dense-numericals fails to build with the following error:

Unhandled ASDF/FIND-COMPONENT:MISSING-DEPENDENCY in thread #<SB-THREAD:THREAD "main thread" RUNNING {1001728003}>: Component "extensible-compound-types-interfaces" not found, required by #<SYSTEM "trivial-coerce">

numericals fails to build with the following error:

Unhandled ASDF/FIND-COMPONENT:MISSING-DEPENDENCY in thread #<SB-THREAD:THREAD "main thread" RUNNING {1001728003}>: Component "extensible-compound-types-interfaces" not found, required by #<SYSTEM "trivial-coerce">

numericals/benchmarks fails to build with the following error:

Unhandled ASDF/FIND-COMPONENT:MISSING-DEPENDENCY in thread #<SB-THREAD:THREAD "main thread" RUNNING {1001728003}>: Component "extensible-compound-types-interfaces" not found, required by #<SYSTEM "trivial-coerce">

Full log here

Some systems failed to build for Quicklisp dist

Building with SBCL 2.3.1.122-1455d60f6 / ASDF 3.3.5 for quicklisp dist creation.

Trying to build commit id a8995ea

dense-numericals fails to build with the following error:

; caught ERROR:
;   (during macroexpansion of (DEFPOLYMORPH (NU:COPY :MORE-OPTIMAL-TYPE-LIST ...) ...))
;   Can't match (((OUT (ARRAY <TYPE>)))) with ((LIST* (LIST POLYMORPHIC-FUNCTIONS::PARAMETER TYPE) POLYMORPHIC-FUNCTIONS::DEFAULT POLYMORPHIC-FUNCTIONS::SUPPLIED-P)).
...
; caught ERROR:
;   (during macroexpansion of (DEFPOLYMORPH (NU:COPY :SUBOPTIMAL-NOTE ...) ...))
;   Can't match (((OUT NULL))) with ((LIST* (LIST POLYMORPHIC-FUNCTIONS::PARAMETER TYPE) POLYMORPHIC-FUNCTIONS::DEFAULT POLYMORPHIC-FUNCTIONS::SUPPLIED-P)).
...
; caught ERROR:
;   (during macroexpansion of (DEFPOLYMORPH NU:COPY ...))
;   Can't match (((OUT (SIMPLE-ARRAY <TYPE>)))) with ((LIST* (LIST POLYMORPHIC-FUNCTIONS::PARAMETER TYPE) POLYMORPHIC-FUNCTIONS::DEFAULT POLYMORPHIC-FUNCTIONS::SUPPLIED-P)).
...
; caught ERROR:
;   (during macroexpansion of (DEFPOLYMORPH (NU:COPY :MORE-OPTIMAL-TYPE-LIST ...) ...))
;   Can't match (((OUT (ARRAY SINGLE-FLOAT)))) with ((LIST* (LIST POLYMORPHIC-FUNCTIONS::PARAMETER TYPE) POLYMORPHIC-FUNCTIONS::DEFAULT POLYMORPHIC-FUNCTIONS::SUPPLIED-P)).
...
; caught ERROR:
;   (during macroexpansion of (DEFPOLYMORPH NU:COPY ...))
;   Can't match (((OUT (SIMPLE-ARRAY SINGLE-FLOAT)))) with ((LIST* (LIST POLYMORPHIC-FUNCTIONS::PARAMETER TYPE) POLYMORPHIC-FUNCTIONS::DEFAULT POLYMORPHIC-FUNCTIONS::SUPPLIED-P)).
...
; caught ERROR:
;   (during macroexpansion of (DEFPOLYMORPH (NU:COPY :MORE-OPTIMAL-TYPE-LIST ...) ...))
;   Can't match (((OUT (ARRAY DOUBLE-FLOAT)))) with ((LIST* (LIST POLYMORPHIC-FUNCTIONS::PARAMETER TYPE) POLYMORPHIC-FUNCTIONS::DEFAULT POLYMORPHIC-FUNCTIONS::SUPPLIED-P)).
...
; caught ERROR:
;   (during macroexpansion of (DEFPOLYMORPH NU:COPY ...))
;   Can't match (((OUT (SIMPLE-ARRAY DOUBLE-FLOAT)))) with ((LIST* (LIST POLYMORPHIC-FUNCTIONS::PARAMETER TYPE) POLYMORPHIC-FUNCTIONS::DEFAULT POLYMORPHIC-FUNCTIONS::SUPPLIED-P)).
...
Unhandled UIOP/LISP-BUILD:COMPILE-FILE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {1040610113}>: COMPILE-FILE-ERROR while compiling #<CL-SOURCE-FILE "dense-numericals" "copy-coerce">

numericals fails to build with the following error:

; caught ERROR:
;   (during macroexpansion of (DEFPOLYMORPH (NU:ASARRAY :INLINE ...) ...))
;   Can't match (((TYPE (EQL :AUTO)))) with ((LIST* (LIST POLYMORPHIC-FUNCTIONS::PARAMETER TYPE) POLYMORPHIC-FUNCTIONS::DEFAULT POLYMORPHIC-FUNCTIONS::SUPPLIED-P)).
...
Unhandled UIOP/LISP-BUILD:COMPILE-FILE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {1001728003}>: COMPILE-FILE-ERROR while compiling #<CL-SOURCE-FILE "numericals" "primitives">

numericals/benchmarks fails to build because of a failure in numericals.

Full log here

Cant run test

Dear digikar,

I am trying to use numericals but I am facing with a lot of issues.
I can't even run the benchmark since sbcl-numerical package doesn't exist neither d+ d- etc or d2+.
I've planning to play with simd avx2 and sse2 and numericals seemed to be a good option but I am struggling with it.
Do you plan to work on it and make it stable for at least what is implemented.
I wish I contribute but I am not that familiar with simd.

Regards,
Bela

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.