www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/10/09/23:56:18

Xref: news-dnh.mv.net comp.os.msdos.djgpp:2518
Path: news-dnh.mv.net!mv!news.NH.Destek.Net!news2.net99.net!news.cais.net!uunet!in2.uu.net!news.mathworks.com!newsfeed.internetmci.com!news.sprintlink.net!dnaco.net!eheft
From: eheft AT sisko DOT dnaco DOT net (eheft)
Newsgroups: comp.os.msdos.djgpp
Subject: Q: Moving from V1.12.3 to V2.0
Date: 9 Oct 1995 20:32:44 GMT
Organization: The Dayton Network Access Company (DNACo)
Lines: 64
Nntp-Posting-Host: eheft AT kirk DOT dnaco DOT net
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Dj-Gateway: from newsgroup comp.os.msdos.djgpp

Hi as the subject says I'm moving code from V1.12.3 to V2.0 
and I've encountered some errors from code that ran fine
before.

First let me ask what all generates a Floating Point Error?



I've tracked down a FPE error to an assignment like

f1 = f2 - f3;       /* where all fn's are vars of type float */



The second problem was with this code:

/*------------------------------------------------------------
  For some reason this code gave me a segfault about 1/3rd of
  the way though the loop. I checked data,x,y were all good.
-------------------------------------------------------------*/

void Shift(float *data,long x,long y)
{
    int dx,dy,i;
    float v;
    for (dy=0; dy < y; dy++)
    {
        for (dx=0; dx < x; dx++)
        {
            i = 2 * ( dx + ( dy * x ));
            v = (dx + dy) % 2 * -2 + 1;
            data[ i+0 ] *= v;
            data[ i+1 ] *= v;
        }
    }
}

/*-----------------------------------------------------------
  This function no longer gives seg faults. but its missing 
  the i+1 assignment. BTW: data is a 2D array of complex #'s
------------------------------------------------------------*/

void Shift(float data[],long dx,long dy)
{
    int x,y;
    float v;

    for (y=0 ; y<dy; y++)
        for(x=0; x<dx; x++)
        {
            v = (x + y) % 2 * -2 + 1;
            data[ (x + y * dx) * 2 ] *= v;
        }
}

/* Here is the actual call */

Shift(cp->data,cp->dx,cp->dy); 



Thanks for any light you can shed on this.

-- Eric

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019