Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed recipes/endia/image.jpeg
Binary file not shown.
44 changes: 0 additions & 44 deletions recipes/endia/recipe.yaml

This file was deleted.

41 changes: 0 additions & 41 deletions recipes/endia/test.mojo

This file was deleted.

Binary file added recipes/nabla/image.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
43 changes: 43 additions & 0 deletions recipes/nabla/recipe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
context:
version: "25.3.0"

package:
name: "nabla"
version: ${{ version }}

source:
- git: https://github.com/nabla-ml/nabla.git
rev: f677a02a82caada7d233e11bf4e189fdb702ef7f

build:
number: 0
script:
- mojo package nabla -o ${{ PREFIX }}/lib/mojo/nabla.mojopkg
requirements:
host:
- max =25.3
run:
- ${{ pin_compatible('max') }}

tests:
- script:
- if: unix
then:
- mojo test.mojo
requirements:
run:
- max =25.3
files:
recipe:
- test.mojo

about:
homepage: https://github.com/nabla-ml/nabla
license: Apache-2.0
license_file: LICENSE
summary: Differtiable Programming in Mojo.
repository: https://github.com/nabla-ml/nabla

extra:
maintainers:
- TilliFe
37 changes: 37 additions & 0 deletions recipes/nabla/test.mojo
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import nabla


fn main() raises:

# Simple test to check if nabla is callable, extensive testing is done elsewhere!

fn foo(args: List[nabla.Array]) raises -> List[nabla.Array]:
return List(
nabla.sum(nabla.sin(args[0] * args[1])),
nabla.sum(nabla.cos(args[0] * args[1])),
)

var foo_vmapped = nabla.vmap(foo)
var foo_d1 = nabla.jacrev(foo_vmapped)
var foo_d2 = nabla.jacfwd(foo_d1)
var foo_d3 = nabla.jacfwd(foo_d2)

var args = List(nabla.arange((2, 3)), nabla.arange((2, 3)))

var res = foo(args)
print("foo checksum: ", nabla.sum(res[0])) # , nabla.sum(res[1]))

var d1 = foo_d1(args)
print(
"foo_d1 checksum: ", nabla.sum(d1[0])
) # , nabla.sum(d1[1]), nabla.sum(d1[2]), nabla.sum(d1[3]))

var d2 = foo_d2(args)
print(
"foo_d2 checksum: ", nabla.sum(d2[0])
) # , nabla.sum(d2[1]), nabla.sum(d2[2]), nabla.sum(d2[3]), nabla.sum(d2[4]), nabla.sum(d2[5]), nabla.sum(d2[6]), nabla.sum(d2[7]))

var d3 = foo_d3(args)
print(
"foo_d3 checksum: ", nabla.sum(d3[0])
) # , nabla.sum(d3[1]), nabla.sum(d3[2]), nabla.sum(d3[3]), nabla.sum(d3[4]), nabla.sum(d3[5]), nabla.sum(d3[6]), nabla.sum(d3[7]), nabla.sum(d3[8]), nabla.sum(d3[9]), nabla.sum(d3[10]), nabla.sum(d3[11]), nabla.sum(d3[12]), nabla.sum(d3[13]), nabla.sum(d3[14]), nabla.sum(d3[15]))