Coord ParamDistortion::ComputePosWithBarycentric(const std::vector<Coord>& vtx_coord_array, Coord barycentric) { assert(vtx_coord_array.size() == 3); zjucad::matrix::matrix<double> pos_matrix(3, 3); for(size_t i=0; i<3; ++i) for(size_t j=0; j<3; ++j) pos_matrix(i, j) = vtx_coord_array[j][i]; zjucad::matrix::matrix<double> barycentric_matrix(3, 1); for(size_t i=0; i<3; ++i) barycentric_matrix(i, 0) = barycentric[i]; zjucad::matrix::matrix<double> res_matrix = pos_matrix * barycentric_matrix; return Coord(res_matrix(0, 0), res_matrix(1, 0), res_matrix(2, 0)); }
bool isInterleave(string s1, string s2, string s3) { // Start typing your C/C++ solution below // DO NOT write int main() function int len1=s1.size(),len2=s2.size(),len3=s3.size(); if((len1+len2)!=len3) return false; vector<vector<unsigned char> > res_matrix(len1+1,vector<unsigned char>(len2+1,0)); res_matrix[0][0]=1; for(int i=1; i<len1+1; i++) { if(s1[i-1]==s3[i-1]) res_matrix[i][0]=1; else break; } for(int i=1; i<len2+1; i++) { if(s2[i-1]==s3[i-1]) res_matrix[0][i]=1; else break; } for(int i=0; i<len1; i++) { for(int j=0; j<len2; j++) { if(res_matrix[i][j+1]&&s1[i]==s3[i+j+1]) res_matrix[i+1][j+1]=1; else if(res_matrix[i+1][j]&&s2[j]==s3[i+j+1]) res_matrix[i+1][j+1]=1; } } return (bool)res_matrix[len1][len2]; }