Skip to content

Commit ff9c675

Browse files
committed
Add instructional forward-example.
1 parent 3144331 commit ff9c675

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

7_fwd/Makefile

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
all: fwd.o
2+
3+
clean:
4+
rm -f *.o *.ll
5+
6+
%.o: %.c
7+
../dockerscript.sh clang-12 /host/$^ -O3 -Xclang -load -Xclang /Enzyme/enzyme/build/Enzyme/ClangEnzyme-12.so -ffast-math -o /host/$@
8+
9+
run-%: %.o
10+
../dockerscript.sh /host/$^ 3.14

7_fwd/fwd.c

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#include <stdio.h>
2+
#include <math.h>
3+
#include <assert.h>
4+
5+
double __enzyme_fwddiff(void*, ...);
6+
7+
void compute_loops(float* a, float* b, float* ret) {
8+
double sum0 = 0.0;
9+
for (int i = 0; i < 100; i++) {
10+
sum0 += *a + *b;
11+
}
12+
*ret = sum0;
13+
}
14+
15+
int main(int argc, char** argv) {
16+
float a = 2.0;
17+
float b = 3.0;
18+
19+
float da = 1.0;//(float*) malloc(sizeof(float));
20+
float db = 1.0;//(float*) malloc(sizeof(float));
21+
22+
float ret = 0;
23+
float dret = 1.0;
24+
25+
__enzyme_fwddiff(compute_loops, &a, &da, &b, &db, &ret, &dret);
26+
printf("ret %f, dret %f, da: %f, db: %f\n", ret, dret, da, db);
27+
28+
return 0;
29+
}

0 commit comments

Comments
 (0)