ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/util/rmatrix.c
(Generate patch)

Comparing ray/src/util/rmatrix.c (file contents):
Revision 2.7 by greg, Tue Aug 5 21:45:05 2014 UTC vs.
Revision 2.8 by greg, Wed Aug 27 13:33:47 2014 UTC

# Line 59 | Line 59 | rmx_addinfo(RMATRIX *rm, const char *info)
59   {
60          if (!info || !*info)
61                  return(0);
62 <        if (!rm->info)
62 >        if (!rm->info) {
63                  rm->info = (char *)malloc(strlen(info)+1);
64 <        else
64 >                if (rm->info) rm->info[0] = '\0';
65 >        } else
66                  rm->info = (char *)realloc(rm->info,
67                                  strlen(rm->info)+strlen(info)+1);
68          if (!rm->info)
# Line 491 | Line 492 | rmx_multiply(const RMATRIX *m1, const RMATRIX *m2)
492                  rmx_addinfo(mres, rmx_mismatch_warn);
493          for (i = mres->nrows; i--; )
494              for (j = mres->ncols; j--; )
495 <                for (h = m1->ncols; h--; ) {
495 >                for (k = mres->ncomp; k--; ) {
496                      long double d = 0;
497 <                    for (k = mres->ncomp; k--; )
497 >                    for (h = m1->ncols; h--; )
498                          d += (long double)rmx_lval(m1,i,h,k) *
499                                  (long double)rmx_lval(m2,h,j,k);
500                      rmx_lval(mres,i,j,k) = (double)d;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines