//方程操作一系列函数 struct array * caculate_function(struct array *p1,struct array *p2) { int i,j; int n=(int)p1->m; struct array *p3=create_array(n); for(i=1;i<=n;i++) { *modify_m(p3,1,i)=value_array(instead_array(p1,p2,i))/value_array(p1); } return p3; }
/** * Test that choice_option correctly reports its capabilities. */ TEST(choice_option_test, capabilities) { auto short_name = std::string("f"); auto name = std::string("foo"); auto option = qflags::choice_option(name.c_str(), short_name.c_str(), {"bar", "baz"}, "bar"); EXPECT_EQ(name, option.name()); EXPECT_EQ(short_name, option.short_name()); EXPECT_EQ(false, option.is_set()); EXPECT_EQ(false, option.is_flag()); EXPECT_EQ(false, option.is_command()); EXPECT_EQ(false, option.is_array()); EXPECT_EQ(false, option.is_boolean()); EXPECT_EQ(false, option.is_integer()); EXPECT_EQ(true, option.is_string()); EXPECT_EQ(0u, option.array_size()); EXPECT_THROW(option.value_boolean(), std::logic_error); EXPECT_THROW(option.value_integer(), std::logic_error); EXPECT_EQ("bar", option.value_string()); EXPECT_THROW(option.value_array(0), std::logic_error); EXPECT_THROW(static_cast<bool>(option), std::logic_error); EXPECT_THROW(static_cast<int64_t>(option), std::logic_error); EXPECT_THROW(static_cast<int>(option), std::logic_error); EXPECT_EQ("bar", static_cast<std::string>(option)); }
std::vector<xmlrpc_c::value> paramList::getArray(unsigned int const paramNumber, unsigned int const minSize, unsigned int const maxSize) const { if (paramNumber >= this->paramVector.size()) throw(fault("Not enough parameters", fault::CODE_TYPE)); const xmlrpc_c::value * const paramP(&this->paramVector[paramNumber]); if (paramP->type() != value::TYPE_ARRAY) throw(fault("Parameter that is supposed to be an array is not", fault::CODE_TYPE)); xmlrpc_c::value_array const arrayValue(*paramP); if (arrayValue.size() < minSize) throw(fault("Array parameter has too few elements", fault::CODE_TYPE)); if (arrayValue.size() > maxSize) throw(fault("Array parameter has too many elements", fault::CODE_TYPE)); return value_array(*paramP).vectorValueValue(); }
double value_array(struct array *p1) { int i,j; int n=(int)p1->m; double sum=0; if((int)p1->m==1)return(*modify_m(p1,1,1)); else { i=1; for(j=1;j<=n;j++) { sum=sum+pow((-1),j+1)*(*modify_m(p1,i,j))*value_array(son_array(p1,i,j)); } return sum; } }