- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Im using IVF 11.0and DVF 6.0 to run the same codes, but they give different results, why? I've tried several programs, some of them have the same resuts, but others do not. And I know the results given by DVF are what I want. why does this happen?
1 Solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - j.fan
Thank you Steve. Sorry I didn't say clearly. Themagnitude of the differences may betens of orders. Or, for some cases,IVFgive an 'infinite' or 'NaN'result. These old scientific computational codeswere originallydeveloped in F77 and re-developed later and worked wellwith DVF. I just wonder whether some new features of IVF could result in the huge differences.
I ran into exactly the same problem converting between Windows Powerstation VF (WVF) and IVF. IVF does not allow for sloppy programming, PVF was very forgiving. Uninitalized variables turned out to bethe culprit. WVF set these to zero for you, with IVF they are also set, but to a very large negative number or perhaps even random. So divide by zero or number out of range results. Step thrugh the program around where the error occurs and see if all variables have defined and correct values. There maybe compiler options that allow IVF and WVF to have the same defaults, but it is better to correct the code.
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There are many possible reasons, including coding errors in your application (specifically, use of uninitialized variables or failure to use SAVE statements), optimizations causing reordering of floating point operations, and for 11.0 and later, the Intel default to use SSE instructions rather than X87 for floating point. There may be other possibilities. You don't say if the differences are floating point or otherwise, nor what the magnitude of the differences are. You should not expect bit-for-bit identical floating point results across implementations as there are many ways differences can enter due to the nature of computational floating point.
If you can identify the point in your application where results diverge, you'll be better able to understand the cause.
If you can identify the point in your application where results diverge, you'll be better able to understand the cause.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Steve Lionel (Intel)
There are many possible reasons, including coding errors in your application (specifically, use of uninitialized variables or failure to use SAVE statements), optimizations causing reordering of floating point operations, and for 11.0 and later, the Intel default to use SSE instructions rather than X87 for floating point. There may be other possibilities. You don't say if the differences are floating point or otherwise, nor what the magnitude of the differences are. You should not expect bit-for-bit identical floating point results across implementations as there are many ways differences can enter due to the nature of computational floating point.
If you can identify the point in your application where results diverge, you'll be better able to understand the cause.
If you can identify the point in your application where results diverge, you'll be better able to understand the cause.
Thank you Steve. Sorry I didn't say clearly. Themagnitude of the differences may betens of orders. Or, for some cases,IVFgive an 'infinite' or 'NaN'result. These old scientific computational codeswere originallydeveloped in F77 and re-developed later and worked wellwith DVF. I just wonder whether some new features of IVF could result in the huge differences.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - j.fan
Thank you Steve. Sorry I didn't say clearly. Themagnitude of the differences may betens of orders. Or, for some cases,IVFgive an 'infinite' or 'NaN'result. These old scientific computational codeswere originallydeveloped in F77 and re-developed later and worked wellwith DVF. I just wonder whether some new features of IVF could result in the huge differences.
I ran into exactly the same problem converting between Windows Powerstation VF (WVF) and IVF. IVF does not allow for sloppy programming, PVF was very forgiving. Uninitalized variables turned out to bethe culprit. WVF set these to zero for you, with IVF they are also set, but to a very large negative number or perhaps even random. So divide by zero or number out of range results. Step thrugh the program around where the error occurs and see if all variables have defined and correct values. There maybe compiler options that allow IVF and WVF to have the same defaults, but it is better to correct the code.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Try adding the following option: /Qsave
If building from the command line. /Qsave will be on by default when converting a CVF project in version 11.
If you are building from the command line, I also recommend adding /gen-interface /warn:interface
If building from the command line. /Qsave will be on by default when converting a CVF project in version 11.
If you are building from the command line, I also recommend adding /gen-interface /warn:interface
![](/skins/images/7B0AB6865064EAE32B30EC9A4E94B48A/responsive_peak/images/icon_anonymous_message.png)
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page