Skip to content

Commit 2ce05a8

Browse files
committed
reuse repeated hessian components
1 parent 8d30066 commit 2ce05a8

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

autodiff/script.js

+10-10
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ const Presets = [
183183
codeFun: `float fun(float x, float y, float z, float *grad, float *hess) {
184184
float {%funbody%};
185185
grad[0]={%v;x%}, grad[1]={%v;y%}, grad[2]={%v;z%};
186-
hess[0]={%v;x,x%}, hess[1]={%v;x,y%}, hess[2]={%v;x,z%}, hess[3]={%v;y,x%}, hess[4]={%v;y,y%}, hess[5]={%v;y,z%}, hess[6]={%v;z,x%}, hess[7]={%v;z,y%}, hess[8]={%v;z,z%};
186+
hess[0]={%v;x,x%}, hess[1]={%v;x,y%}, hess[2]={%v;x,z%}, hess[3]={%v;x,y%}, hess[4]={%v;y,y%}, hess[5]={%v;y,z%}, hess[6]={%v;x,z%}, hess[7]={%v;y,z%}, hess[8]={%v;z,z%};
187187
return {%v%};
188188
}`,
189189
codeDef: `{%varname%}={%expr%}`,
@@ -197,7 +197,7 @@ const Presets = [
197197
codeFun: `double fun(double x, double y, double z, double *grad, double *hess) {
198198
double {%funbody%};
199199
grad[0]={%v;x%}, grad[1]={%v;y%}, grad[2]={%v;z%};
200-
hess[0]={%v;x,x%}, hess[1]={%v;x,y%}, hess[2]={%v;x,z%}, hess[3]={%v;y,x%}, hess[4]={%v;y,y%}, hess[5]={%v;y,z%}, hess[6]={%v;z,x%}, hess[7]={%v;z,y%}, hess[8]={%v;z,z%};
200+
hess[0]={%v;x,x%}, hess[1]={%v;x,y%}, hess[2]={%v;x,z%}, hess[3]={%v;x,y%}, hess[4]={%v;y,y%}, hess[5]={%v;y,z%}, hess[6]={%v;x,z%}, hess[7]={%v;y,z%}, hess[8]={%v;z,z%};
201201
return {%v%};
202202
}`,
203203
codeDef: `{%varname%}={%expr%}`,
@@ -212,7 +212,7 @@ const Presets = [
212212
float x = p.x(), y = p.y(), z = p.z();
213213
float {%funbody%};
214214
grad = Eigen::Vector3f({%v;x%}, {%v;y%}, {%v;z%});
215-
hess << {%v;x,x%}, {%v;x,y%}, {%v;x,z%}, {%v;y,x%}, {%v;y,y%}, {%v;y,z%}, {%v;z,x%}, {%v;z,y%}, {%v;z,z%};
215+
hess << {%v;x,x%}, {%v;x,y%}, {%v;x,z%}, {%v;x,y%}, {%v;y,y%}, {%v;y,z%}, {%v;x,z%}, {%v;y,z%}, {%v;z,z%};
216216
return {%v%};
217217
}`,
218218
codeDef: `{%varname%}={%expr%}`,
@@ -227,7 +227,7 @@ const Presets = [
227227
double x = p.x(), y = p.y(), z = p.z();
228228
double {%funbody%};
229229
grad = Eigen::Vector3d({%v;x%}, {%v;y%}, {%v;z%});
230-
hess << {%v;x,x%}, {%v;x,y%}, {%v;x,z%}, {%v;y,x%}, {%v;y,y%}, {%v;y,z%}, {%v;z,x%}, {%v;z,y%}, {%v;z,z%};
230+
hess << {%v;x,x%}, {%v;x,y%}, {%v;x,z%}, {%v;x,y%}, {%v;y,y%}, {%v;y,z%}, {%v;x,z%}, {%v;y,z%}, {%v;z,z%};
231231
return {%v%};
232232
}`,
233233
codeDef: `{%varname%}={%expr%}`,
@@ -242,7 +242,7 @@ const Presets = [
242242
float x = p.x, y = p.y, z = p.z;
243243
float {%funbody%};
244244
grad = glm::vec3({%v;x%}, {%v;y%}, {%v;z%});
245-
hess = glm::mat3({%v;x,x%}, {%v;x,y%}, {%v;x,z%}, {%v;y,x%}, {%v;y,y%}, {%v;y,z%}, {%v;z,x%}, {%v;z,y%}, {%v;z,z%});
245+
hess = glm::mat3({%v;x,x%}, {%v;x,y%}, {%v;x,z%}, {%v;x,y%}, {%v;y,y%}, {%v;y,z%}, {%v;x,z%}, {%v;y,z%}, {%v;z,z%});
246246
return {%v%};
247247
}`,
248248
codeDef: `{%varname%}={%expr%}`,
@@ -257,7 +257,7 @@ const Presets = [
257257
float x = p.x, y = p.y, z = p.z;
258258
float {%funbody%};
259259
grad = vec3({%v;x%}, {%v;y%}, {%v;z%});
260-
hess = mat3({%v;x,x%}, {%v;x,y%}, {%v;x,z%}, {%v;y,x%}, {%v;y,y%}, {%v;y,z%}, {%v;z,x%}, {%v;z,y%}, {%v;z,z%});
260+
hess = mat3({%v;x,x%}, {%v;x,y%}, {%v;x,z%}, {%v;x,y%}, {%v;y,y%}, {%v;y,z%}, {%v;x,z%}, {%v;y,z%}, {%v;z,z%});
261261
return {%v%};
262262
}`,
263263
codeDef: `{%varname%}={%expr%}`,
@@ -395,7 +395,7 @@ const Presets = [
395395
codeFun: `float fun(float x, float y, float *grad, float *hess) {
396396
float {%funbody%};
397397
grad[0]={%v;x%}, grad[1]={%v;y%};
398-
hess[0]={%v;x,x%}, hess[1]={%v;x,y%}, hess[2]={%v;y,x%}, hess[3]={%v;y,y%};
398+
hess[0]={%v;x,x%}, hess[1]={%v;x,y%}, hess[2]={%v;x,y%}, hess[3]={%v;y,y%};
399399
return {%v%};
400400
}`,
401401
codeDef: `{%varname%}={%expr%}`,
@@ -409,7 +409,7 @@ const Presets = [
409409
codeFun: `double fun(double x, double y, double *grad, double *hess) {
410410
double {%funbody%};
411411
grad[0]={%v;x%}, grad[1]={%v;y%};
412-
hess[0]={%v;x,x%}, hess[1]={%v;x,y%}, hess[2]={%v;y,x%}, hess[3]={%v;y,y%};
412+
hess[0]={%v;x,x%}, hess[1]={%v;x,y%}, hess[2]={%v;x,y%}, hess[3]={%v;y,y%};
413413
return {%v%};
414414
}`,
415415
codeDef: `{%varname%}={%expr%}`,
@@ -424,7 +424,7 @@ const Presets = [
424424
float x = p.x, y = p.y;
425425
float {%funbody%};
426426
grad = glm::vec2({%v;x%}, {%v;y%});
427-
hess = glm::mat2({%v;x,x%}, {%v;x,y%}, {%v;y,x%}, {%v;y,y%});
427+
hess = glm::mat2({%v;x,x%}, {%v;x,y%}, {%v;x,y%}, {%v;y,y%});
428428
return {%v%};
429429
}`,
430430
codeDef: `{%varname%}={%expr%}`,
@@ -439,7 +439,7 @@ const Presets = [
439439
float x = p.x, y = p.y;
440440
float {%funbody%};
441441
grad = vec2({%v;x%}, {%v;y%});
442-
hess = mat2({%v;x,x%}, {%v;x,y%}, {%v;y,x%}, {%v;y,y%});
442+
hess = mat2({%v;x,x%}, {%v;x,y%}, {%v;x,y%}, {%v;y,y%});
443443
return {%v%};
444444
}`,
445445
codeDef: `{%varname%}={%expr%}`,

0 commit comments

Comments
 (0)