std::wstring printInLinePoly(types::SinglePoly* _pPoly, std::wstring _stVar) { std::wostringstream ostr; double* pdblIn = _pPoly->get(); for (int i = 0 ; i < _pPoly->getSize() ; i++) { if (pdblIn[i] != 0) { DoubleFormat df; getDoubleFormat(pdblIn[i], &df); df.bPrintPoint = ostr.str().size() != 0; df.bPrintPlusSign = true; df.bPrintOne = i == 0; df.bPaddSign = false; df.bPrintBlank = false; df.bPrintPlusSign = false; addDoubleValue(&ostr, pdblIn[i], &df); if (i != 0) { ostr << _stVar; if (i > 1) { ostr << "^" << i; } } } } return ostr.str(); }
std::wstring printDouble(types::Double* _pD) { std::wostringstream ostr; DoubleFormat df; getDoubleFormat(_pD->get(0), &df); df.bPrintPoint = false; df.bPaddSign = false; df.bPrintBlank = false; addDoubleValue(&ostr, _pD->get(0), &df); return ostr.str(); }
static void DoubleComplexMatrix2String(std::wostringstream *_postr, double _dblR, double _dblI) { /* if R && !C -> R if R && C -> R + Ci if !R && !C -> 0 if(!R aa C -> Ci */ DoubleFormat dfR, dfI; dfR.bPrintBlank = false; dfI.bPrintBlank = false; getDoubleFormat(_dblR, &dfR); getDoubleFormat(_dblI, &dfI); dfR.bPrintPoint = dfR.bExp; dfR.bPaddSign = false; dfI.bPrintPoint = dfI.bExp; dfI.bPaddSign = false; // decrease precision when the real number will be rounded // format(10) with number 1.12345678 should return 1.1234568 if (dfR.iWidth == ConfigVariable::getFormatSize()) { if (dfR.iPrec != 0) { dfR.iPrec--; } dfR.iWidth--; } if (dfI.iWidth == ConfigVariable::getFormatSize()) { if (dfI.iPrec != 0) { dfI.iPrec--; } dfI.iWidth--; } if (_dblR == 0) { //no real part if (_dblI == 0) { //no imaginary part //0 addDoubleValue(_postr, 0, &dfR); } else { //imaginary part //I *_postr << (_dblI < 0 ? L"-" : L""); *_postr << L"%i"; if (fabs(_dblI) != 1 || dfI.bExp) { //specail case if I == 1 write only %i and not %i*1 *_postr << L"*"; addDoubleValue(_postr, fabs(_dblI), &dfI); } } } else { //real part if (_dblI == 0) { //no imaginary part //R addDoubleValue(_postr, _dblR, &dfR); } else { //imaginary part //R addDoubleValue(_postr, _dblR, &dfR); //I *_postr << (_dblI < 0 ? L"-%i" : L"+%i"); if (fabs(_dblI) != 1 || dfI.bExp) { //special case if I == 1 write only %i and not %i*1 *_postr << L"*"; addDoubleValue(_postr, fabs(_dblI), &dfI); } } } }