// --------------------------------------------------------------------------- // Set display mode of decoration buffer. // --------------------------------------------------------------------------- // void CPeninputPenTraceDecorator::SetDisplayModeL( TDisplayMode aDisplayMode, TBool aUpdateBuffer ) { if ( iDisplayMode == aDisplayMode ) { return; } iDisplayMode = aDisplayMode; if ( aUpdateBuffer ) { ResizeL( iBufferSize, ETrue ); } }
// --------------------------------------------------------------------------- // Enable decorator. // --------------------------------------------------------------------------- // void CPeninputPenTraceDecorator::Enable() { if ( !iEnabled && ( !iBitsBitmap || !iMaskBitmap || !iXSquareArray ) ) { TRAPD( err, ResizeL( iBufferSize, ETrue ) ); if ( err ) { iEnabled = EFalse; return; } } iEnabled = ETrue; }
DataStream_TypedSequence<T> &DataStream_TypedSequence<T>::operator =(T &source) { OP_STATUS op_err; TRAP_AND_RETURN_VALUE_IF_ERROR(op_err, ResizeL(1), *this); DataStream_ByteArray source_binary; TRAP_AND_RETURN_VALUE_IF_ERROR(op_err, source.WriteRecordL(&source_binary), *this); Item(0).ResetRecord(); TRAP_AND_RETURN_VALUE_IF_ERROR(op_err, Item(0).ReadRecordFromStreamL(&source_binary), *this); return *this; }
void LLT_Factorization( vector < int > &ig, vector < int > &jg, vector < int > &ijg, vector < int > &idi, vector < double > &ggl, vector < double > &di, vector < int > &LLT_ig, vector < int > &LLT_jg, vector < int > &LLT_ijg, vector < int > &LLT_idi, vector < double > &LLT_ggl, vector < double > &LLT_di, int Nb ) { ResizeL(LLT_ig, LLT_jg, LLT_ijg, LLT_idi, LLT_ggl, LLT_di, jg, ig, Nb); int cur_bloxk = 0; double sum[2]; int size; for (int i = 0; i < Nb; i++) { int ib0 = ig[i]; int ib1 = ig[i + 1]; //идем по блокам для разложения //ggl for (int m = ib0;m < ib1; m++) { int j = jg[m]; int jb0 = ig[j]; int jb1 = ig[j + 1]; sum[0] = 0; sum[1] = 0; int i_cur = ib0; //суммируем умножения блоков в строке-столбце for (int k = jb0; k < jb1; k++) { while (jg[i_cur] < jg[k]) { i_cur++; } if (jg[i_cur] == jg[k]) { size = LLT_ijg[j+1] - LLT_ijg[j]; mult_block(&LLT_ggl[LLT_ijg[k]], sum, &LLT_ggl[LLT_ijg[i_cur]],size); } } //new elem //sub_complex_numbers(&ggl[ijg[m]], sum, sum); size = ijg[m + 1] - ijg[m]; if (size == 1) { sum[0] = ggl[ijg[m]] - sum[0]; } else { sum[0] = ggl[ijg[m]] - sum[0]; sum[1] = ggl[ijg[m]+1] - sum[1]; } div_complex_numbers(sum, &LLT_di[LLT_idi[j]], sum); LLT_ggl[LLT_ijg[m]] = sum[0]; LLT_ggl[LLT_ijg[m]+1] = sum[1]; } //di sum[0] = 0; sum[1] = 0; for (int k = ib0; k < ib1; k++) { size = LLT_ijg[k + 1] - LLT_ijg[k]; mult_block(&LLT_ggl[LLT_ijg[k]], sum, &LLT_ggl[LLT_ijg[k]], size); } double tmp[2]; size = idi[i + 1] - idi[i]; if (size == 1) { sum[0] = di[idi[i]]-sum[0]; } else { sum[0] = di[idi[i]] - sum[0]; sum[1] = di[idi[i]+1] - sum[1]; } SqrtComplex(sum, tmp); LLT_di[2 * i] = tmp[0]; LLT_di[2 * i + 1] = tmp[1]; } }