Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00011 #include <fvar.hpp>
00012
00017 ivector colsum(const imatrix &v)
00018 {
00019 int cmin=v.colmin();
00020 int cmax=v.colmax();
00021 int rmin=v.rowmin();
00022 int rmax=v.rowmax();
00023
00024 ivector tmp(cmin,cmax);
00025 tmp.initialize();
00026 for (int j=cmin; j<=cmax; j++)
00027 {
00028 for (int i=rmin; i<=rmax; i++)
00029 {
00030 tmp(j)+=v(i,j);
00031 }
00032 }
00033 return tmp;
00034 }
00035
00040 ivector rowsum(const imatrix &v)
00041 {
00042 int rmin=v.rowmin();
00043 int rmax=v.rowmax();
00044
00045 ivector tmp(rmin,rmax);
00046 for (int i=rmin; i<=rmax; i++)
00047 {
00048 tmp(i)=sum(v(i));
00049 }
00050 return tmp;
00051 }
00052
00057 void imatrix::fill_seqadd(int i2,int j)
00058 {
00059 int mmin=indexmin();
00060 int mmax=indexmax();
00061 int ii=i2;
00062 for (int i=mmin;i<=mmax;i++)
00063 {
00064 if (allocated((*this)(i)))
00065 {
00066 (*this)(i).fill_seqadd(ii,j);
00067 int jmax=(*this)(i).indexmax();
00068 ii=(*this)(i,jmax)+j;
00069 }
00070 }
00071 }