void frictionContact3D_AlartCurnierFunctionGenerated( double *reaction, double *velocity, double mu, double *rho, double *f, double *A, double *B) { double result[21]; assert(reaction); assert(velocity); assert(rho); SET3(reaction); SET3(velocity); SET3(rho); if (f && A && B) { frictionContact3D_AlartCurnierFABGenerated( *reaction0, *reaction1, *reaction2, *velocity0, *velocity1, *velocity2, mu, *rho0, *rho1, *rho2, result); cpy3(result, f); cpy3x3(result + 3, A); cpy3x3(result + 12, B); } else { if (f) { frictionContact3D_AlartCurnierFGenerated( *reaction0, *reaction1, *reaction2, *velocity0, *velocity1, *velocity2, mu, *rho0, *rho1, *rho2, result); cpy3(result, f); } if (A && B) { frictionContact3D_AlartCurnierABGenerated( *reaction0, *reaction1, *reaction2, *velocity0, *velocity1, *velocity2, mu, *rho0, *rho1, *rho2, result); cpy3x3(result, A); cpy3x3(result + 9, B); } } }
int main() { // Sequence creation std::vector<int> ilvec = initialize<int>(); std::vector<int> ivec(ilvec.cbegin(), ilvec.cend()); constexpr int arr_sz(11); ilvec = initialize<int>(arr_sz); std::array<int, arr_sz> ilarr({1,2,3,4,5,6,7,8,9,50,61}); ilvec = initialize<int>(); std::list<int> ilst(ilvec.cbegin(), ilvec.cend()); ilvec = initialize<int>(); std::forward_list<int> iflst(ilvec.cbegin(), ilvec.cend()); ilvec = initialize<int>(); std::deque<int> ideq(ilvec.cbegin(), ilvec.cend()); int iarr[]{1, 2, 3, 6, 5, 4, 3, 44, 5, 232, 45, 76, 654, 96, 687, 4, 65, 89,343, 23}; // Print print(ivec, "ivec"); print(ilarr, "ilarr"); print(ilst, "ilst"); print(iflst, "iflst"); print(ideq, "ideq"); print(iarr, "iarr"); // Use algorithms int val1 = 85, val2 = 54; std::cout << "sum = " << std::accumulate(ivec.cbegin(), ivec.cend(), 0) << std::endl; std::cout << "difference = " << std::accumulate(ideq.cbegin(), ideq.cend(), 10, diff<int>) << std::endl; std::cout << "inner product = " << std::inner_product(ilarr.cbegin(), ilarr.cend(),ilst.cbegin(), 0) << std::endl; std::cout << "custom inner product = " << std::inner_product(iflst.cbegin(), iflst.cend(), std::begin(iarr), 777, mod<int>, diff<int>) << std::endl; std::vector<int> cpy(ilst.size()), cpy1(ivec.size()); std::partial_sum(ilst.cbegin(), ilst.cend(), cpy.begin()); print(cpy, "cpy"); std::partial_sum(ivec.cbegin(), ivec.cend(), cpy1.begin(), diff<int>); print(cpy1, "cpy1"); std::vector<int> cpy2(arr_sz), cpy3(20); std::adjacent_difference(ilarr.cbegin(), ilarr.cend(), cpy2.begin()); print(cpy2, "cpy2"); std::adjacent_difference(std::begin(iarr), std::end(iarr), cpy3.begin(), mod<int>); print(cpy3, "cpy3"); print(iflst, "iflst"); std::iota(iflst.begin(), iflst.end(), val1); print(iflst, "iflst"); return 0; }