473,746 Members | 2,381 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

problem while detecting floating point operations

hi friends ...

i am facing a problem while detecting floating point operations in my
project, please help me.

i want to find out the places in my C/C++ project where i am doing
floating point operations.
As it is a big project it is not possible to check every line manually,
so is there any other method
to detect floating point operations in my project?
I just compiled the project with option '-msoft-float', it is reporting
errors at the places where 'float' variables are being used. But it is
not reporting any error for the places where we are using floating
literals ...
to make myself clear,i would give an example code snippet,

example:

//first case

float x;

printf("%f",x); // here it is reporting an error because we are
trying to use the variable (float) x;

//in second case

int y;

y = 4.5 * 2.5; // here it is not reporting any error .

what should have to be done to detect these kind of operations
also.

library: GCC 3.4.3
kernel: 2.6.9
Thanks in advance

Dec 19 '06 #1
4 2131
alex wrote:
.....
//in second case

int y;

y = 4.5 * 2.5; // here it is not reporting any error .

what should have to be done to detect these kind of operations
also.
This likely emits no floating point ops so it is expected that it won't
detect anything.

You could write a simple tokenizer that finds floating point literals.
Dec 19 '06 #2

alex napsal:
hi friends ...

i am facing a problem while detecting floating point operations in my
project, please help me.

i want to find out the places in my C/C++ project where i am doing
floating point operations.
As it is a big project it is not possible to check every line manually,
so is there any other method
to detect floating point operations in my project?
I just compiled the project with option '-msoft-float', it is reporting
errors at the places where 'float' variables are being used. But it is
not reporting any error for the places where we are using floating
literals ...
to make myself clear,i would give an example code snippet,

example:

//first case

float x;

printf("%f",x); // here it is reporting an error because we are
trying to use the variable (float) x;

//in second case

int y;

y = 4.5 * 2.5; // here it is not reporting any error .

what should have to be done to detect these kind of operations
also.

library: GCC 3.4.3
kernel: 2.6.9
Thanks in advance
Hi.

You can try to

#define float MyFType
#define double MyDType
#define long double MyLDType

Then rebuild. As long as you won't define arithnmetic operations for
My*Type, compiler should complain. Maybe you will need to define
constructors and operators for typecasting to float/double/long double.

BR
Ondra

Dec 19 '06 #3
alex a écrit :
hi friends ...

i am facing a problem while detecting floating point operations in my
project, please help me.

i want to find out the places in my C/C++ project where i am doing
floating point operations.
As it is a big project it is not possible to check every line manually,
so is there any other method
to detect floating point operations in my project?
I just compiled the project with option '-msoft-float', it is reporting
errors at the places where 'float' variables are being used. But it is
not reporting any error for the places where we are using floating
literals ...
to make myself clear,i would give an example code snippet,

example:

//first case

float x;

printf("%f",x); // here it is reporting an error because we are
trying to use the variable (float) x;

//in second case

int y;

y = 4.5 * 2.5; // here it is not reporting any error .

what should have to be done to detect these kind of operations
also.

library: GCC 3.4.3
kernel: 2.6.9
Thanks in advance
Well, your compiler is smart enough to know that
y = 4.5 * 2.5;
is evaluated and casted into int at compiled time and so doesn't report
an error because no floating point operation is performed at exec time.

Now, if you want to detect everyline where a floating point operation is
executed at compile time, this is tricky; you would have to locate lines
containg float constant and defines representing a float.

Perhaps it is worth doing a 'gcc -E' to get the file after preprocessing
stage and track back float point values.

Michael
Dec 19 '06 #4
thank you friends I solved the problem using some third part lexer
thank you very much

Dec 22 '06 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
3313
by: Dave | last post by:
Hi folks, I am trying to develop a routine that will handle sphere-sphere and sphere-triangle collisions and interactions. My aim is to develop a quake style collision engine where a player can interact with a rich 3D environment. Seem to be 90% of the way there! My problems are related to calculations where the result tends to zero (or another defined limit.) Have loads of cases where this kind of interaction occurs but this one
31
3677
by: JS | last post by:
We have the same floating point intensive C++ program that runs on Windows on Intel chip and on Sun Solaris on SPARC chips. The program reads the exactly the same input files on the two platforms. However, they generate slightly different results for floating point numbers. Are they really supposed to generate exactly the same results? I guess so because both platforms are supposed to be IEEE floating point standard (754?) compliant. ...
687
23596
by: cody | last post by:
no this is no trollposting and please don't get it wrong but iam very curious why people still use C instead of other languages especially C++. i heard people say C++ is slower than C but i can't believe that. in pieces of the application where speed really matters you can still use "normal" functions or even static methods which is basically the same. in C there arent the simplest things present like constants, each struct and enum...
13
7784
by: tings | last post by:
An article states: "In floating point maths, where if you divide by a sufficiently large number sufficiently often, you will always be able to reach a value too small to distinguish from zero, given the finite precision you have." What happens when "a value too small to distinguish from zero" is reached by the above division? Underflow? What does it mean "sufficiently often" since only one division should be enough to cause underflow...
4
2835
by: jacob navia | last post by:
Hi people I continue to work in the tutorial for lcc-win32, and started to try to explain the floating point flags. Here is the relevant part of the tutorial. Since it is a difficult part, I would like your expert advise before I publish any serious nonsense. Any comments are welcome, style, organization, hard errors, etc.
10
2411
by: chanma | last post by:
code1:var x=0xf0000000; alert(x); output:4026531840 code2:var b=0xf<<28; alert(b); output:-268435456
7
2212
by: pocmatos | last post by:
Hi all, What the best way to detect under/over flow in a program with a lot of computations? For example: #include <iostream> #include <limits> using namespace std;
3
311
by: alex | last post by:
hi friends ... i am facing a problem while detecting floating point operations in my project, please help me. i want to find out the places in my C/C++ project where i am doing floating point operations. As it is a big project it is not possible to check every line manually, so is there any other method to detect floating point operations in my project?
39
3568
by: rembremading | last post by:
Hi all! The following piece of code has (for me) completely unexpected behaviour. (I compile it with gcc-Version 4.0.3) Something goes wrong with the integer to float conversion. Maybe somebody out there understands what happens. Essentially, when I subtract the (double) function value GRID_POINT(2) from a variable which has been assigned the same value before this gives a non-zero result and I really do not understand why.
0
9351
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
9219
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8229
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6774
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6062
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4840
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3294
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
2768
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2200
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.