//=============================================
void KVDigitalFilter::ApplyTo(float* datax, const int NSamples, int reverse) const
{
   // Copiato +- da KVSignal.cxx
   // Diversa la convenzione per a0 b0!

   long double* datay = new long double[NSamples];
   int i = 0, k = 0;
   switch (reverse) {
      case 0:// direct
         for (i = 0; i < Ncoeff; i++) { // primo loop su Npunti
            datay[i] = a[0] * datax[i];
            for (k = 0; k < i; k++)
               datay[i] += a[k + 1] * datax[i - k - 1] + b[k + 1] * datay[i - k - 1];
         }
         for (i = Ncoeff; i < NSamples; i++) { //secondo loop. cambia l'indice interno.
            datay[i] = a[0] * datax[i];
            for (k = 0; k < Ncoeff - 1; k++)
               datay[i] += a[k + 1] * datax[i - k - 1] + b[k + 1] * datay[i - k - 1];
         }
         break; // end of direct
      case 1: //reverse: cut & paste from direct and NSamples-1-
         for (i = 0; i < Ncoeff; i++) { // primo loop su Npunti
            datay[NSamples - 1 - i] = a[0] * datax[NSamples - 1 - i];
            for (k = 0; k < i; k++)
               datay[NSamples - 1 - i] += a[k + 1] * datax[NSamples - 1 - (i - k - 1)]
                                          + b[k + 1] * datay[NSamples - 1 - (i - k - 1)];
         }
         for (i = Ncoeff; i < NSamples; i++) { //secondo loop. cambia l'indice interno.
            datay[NSamples - 1 - i] = a[0] * datax[NSamples - 1 - i];
            for (k = 0; k < Ncoeff - 1; k++)
               datay[NSamples - 1 - i] += a[k + 1] * datax[NSamples - 1 - (i - k - 1)]
                                          + b[k + 1] * datay[NSamples - 1 - (i - k - 1)];
         }
         break;
      case -1: // bidirectional
         ApplyTo(datax, NSamples, 0);
         ApplyTo(datax, NSamples, 1);
         return;
      default:
         printf("ERROR in %s: reverse=%d not supported\n", __PRETTY_FUNCTION__, reverse);
   }// end of reverse switch.
   /*----------------------------------------------*/
   //   void *memcpy(void *dest, const void *src, size_t n);
   for (int i = 0; i < NSamples; i++)
      datax[i] = (float)datay[i];

   delete [] datay;

}
Exemple #2
0
void RichTxt::FormatInfo::ApplyTo(RichPara::Format& fmt) const
{
	ApplyTo((RichPara::CharFormat &)fmt);
	if(paravalid & ALIGN)
		fmt.align = align;
	if(paravalid & RULER)
		fmt.ruler = ruler;
	if(paravalid & BEFORE)
		fmt.before = before;
	if(paravalid & LM)
		fmt.lm = lm;
	if(paravalid & INDENT)
		fmt.indent = indent;
	if(paravalid & RM)
		fmt.rm = rm;
	if(paravalid & AFTER)
		fmt.after = after;
	if(paravalid & TABSIZE)
		fmt.tabsize = tabsize;
	if(paravalid & BULLET)
		fmt.bullet = bullet;
	if(paravalid & NEWPAGE)
		fmt.newpage = newpage;
	if(paravalid & KEEP)
		fmt.keep = keep;
	if(paravalid & KEEPNEXT)
		fmt.keepnext = keepnext;
	if(paravalid & ORPHAN)
		fmt.orphan = orphan;
	if(paravalid & LABEL)
		fmt.label = label;
	if(paravalid & NUMBERING) {
		fmt.before_number = before_number;
		fmt.after_number = after_number;
		fmt.reset_number = reset_number;
		memcpy(fmt.number, number, sizeof(number));
	}
	if(paravalid & TABS)
		fmt.tab = tab;
	if(paravalid & STYLE)
		fmt.styleid = styleid;
	if(paravalid & SPACING)
		fmt.linespacing = linespacing;
	if(paravalid & RULERINK)
		fmt.rulerink = rulerink;
	if(paravalid & RULERSTYLE)
		fmt.rulerstyle = rulerstyle;
}
bool ScreenTransferFunctionInstance::ExecuteOn( View& view )
{
   ApplyTo( view );
   return true;
}
void ApplyGraphicLabelsDlg::OnBnClickedOk()
{
	ApplyTo();

	OnOK();
}