From 33f133fad3d881a6cc736c7221e81ee810ae29ab Mon Sep 17 00:00:00 2001 From: Kei Okada <k-okada@jsk.t.u-tokyo.ac.jp> Date: Sun, 8 Apr 2018 17:55:55 +0900 Subject: [PATCH] if normalize-vector takes zero vector, return zero vector instead of nan vector --- lisp/c/matrix.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lisp/c/matrix.c b/lisp/c/matrix.c index 7e46a6035..f748023c0 100644 --- a/lisp/c/matrix.c +++ b/lisp/c/matrix.c @@ -308,6 +308,9 @@ register pointer argv[]; for (i=0; i<s; i++) sum+= a[i]*a[i]; sum=sqrt(sum); for (i=0; i<s; i++) r[i]=a[i]/sum; + int all_nan=1; /* if all element is nan, return 0 vector */ + for (i=0; i<s; i++) if (!isnan(r[i])) all_nan=0; // false + if (all_nan) for (i=0; i<s; i++) r[i]=0; return(result);} pointer VDISTANCE(ctx,n,argv)