本文整理汇总了C++中BigFloat::set_with_double方法的典型用法代码示例。如果您正苦于以下问题:C++ BigFloat::set_with_double方法的具体用法?C++ BigFloat::set_with_double怎么用?C++ BigFloat::set_with_double使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BigFloat
的用法示例。
在下文中一共展示了BigFloat::set_with_double方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: equation
vector<double> GaussElimination::solveLinearEquationByBigFloat(vector<vector<double>> matrix, vector<double> v)
{
row = matrix.size();
col = matrix[0].size();
if( row != col )
{
cout << "It has to be a linear equation (row != col)." << endl;
return vector<double>(0);
}
if( row == 0 )
{
cout << "There are no member in equation (row = col = 0)." << endl;
return vector<double>(0);
}
if( row != v.size() )
{
cout << "Length of vector matched not matrix size." << endl;
return vector<double>(0);
}
// umwandlung in bigfloats und anhängen des vectors
vector<vector<BigFloat>> matrixBF(row);
unsigned int newcol = col + 1;
for(unsigned int r = 0; r < row; ++r)
{
vector<BigFloat> vBF(newcol);
matrixBF[r] = vBF;
for(unsigned c = 0; c < newcol; ++c)
{
BigFloat bf;
// letzte spalte kommt vom vector
if( c == col )
bf.set_with_double( v[r] );
else
bf.set_with_double( matrix[r][c] );
matrixBF[r][c] = bf;
}
}
//writeMatrix(matrixBF);
// für alle reihen
for(unsigned int indexDiagonal = 0; indexDiagonal < row; ++indexDiagonal)
{
bool success = handleEliminatingValuesInRowByBigFloat(matrixBF, indexDiagonal);
if(!success)
{
cout << "Current row has problems. Row: " << indexDiagonal << endl;
return vector<double>(0);
}
}
vector<double> coefficients(row);
// letzte spalte = coefficients -> return letzte spalte als vector
for(unsigned int i = 0; i < row; ++i)
coefficients[i] = matrixBF[i][col].getdouble();
return coefficients;
}