Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. isValidDoubleValue(double *)

isValidDoubleValue(double *)

Scheduled Pinned Locked Moved C / C++ / MFC
performancequestion
14 Posts 6 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J jmkhael

    Check IsBadReadPtr to guaranty that you have read access to the memory pointed by dptr Papa while (TRUE) Papa.WillLove ( Bebe ) ;

    T Offline
    T Offline
    Tibor Blazko
    wrote on last edited by
    #3

    yes, but it does not guarantee will not crash next doublevalue = *ptr;

    J 1 Reply Last reply
    0
    • T Tibor Blazko

      yes, but it does not guarantee will not crash next doublevalue = *ptr;

      J Offline
      J Offline
      jmkhael
      wrote on last edited by
      #4

      If you have read access, it wont crash will it? Papa while (TRUE) Papa.WillLove ( Bebe ) ;

      T 1 Reply Last reply
      0
      • T Tibor Blazko

        is there any (system) function can test memory pointer to know combination of bits there is real (double, float) value? something like this if(isValidDoubleValue(dptr)) dvalue = 0.0; else dvalue = *dptr; //always no exception crash here what will not crash (all i found (like _isnan) expect given bit combination represents valid state and crashes getting invalid one) thanks

        D Offline
        D Offline
        David Crow
        wrote on last edited by
        #5

        Tibor Blazko wrote: is there any (system) function can test memory pointer to know combination of bits there is real (double, float) value? None that I know of. What's stored at a particular memory location is only important to the application that put it there. In other words, if application A wrote 123.45 to some memory location, it's possible (not to be confused with easy or commonplace) for application B to read that memory location, but application B would not know that those particular bytes represented a double or float.


        "The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)

        T 1 Reply Last reply
        0
        • J jmkhael

          If you have read access, it wont crash will it? Papa while (TRUE) Papa.WillLove ( Bebe ) ;

          T Offline
          T Offline
          Tibor Blazko
          wrote on last edited by
          #6

          sometimes will _FPE_INVALID

          J J 2 Replies Last reply
          0
          • D David Crow

            Tibor Blazko wrote: is there any (system) function can test memory pointer to know combination of bits there is real (double, float) value? None that I know of. What's stored at a particular memory location is only important to the application that put it there. In other words, if application A wrote 123.45 to some memory location, it's possible (not to be confused with easy or commonplace) for application B to read that memory location, but application B would not know that those particular bytes represented a double or float.


            "The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)

            T Offline
            T Offline
            Tibor Blazko
            wrote on last edited by
            #7

            i know it should represent double just have data with some uninitialized values (sometimes not valid doubles) and this (crashing ones) i want set to 0.0 in correction step nr.1

            1 Reply Last reply
            0
            • T Tibor Blazko

              sometimes will _FPE_INVALID

              J Offline
              J Offline
              jmkhael
              wrote on last edited by
              #8

              After gaining read access, check for Floating point exceptions Papa while (TRUE) Papa.WillLove ( Bebe ) ;

              T 1 Reply Last reply
              0
              • T Tibor Blazko

                sometimes will _FPE_INVALID

                J Offline
                J Offline
                Jens Doose
                wrote on last edited by
                #9

                Never heard of that, but a look at MSDN with _FPE_INVALID lead me to SIGFPE and that lead me to signal(), a function you can use to set your own signal handler. I never tried that but maybe this is worth a try? Jens

                T 1 Reply Last reply
                0
                • J jmkhael

                  After gaining read access, check for Floating point exceptions Papa while (TRUE) Papa.WillLove ( Bebe ) ;

                  T Offline
                  T Offline
                  Tibor Blazko
                  wrote on last edited by
                  #10

                  it seems it will end with own fn of this kind just afraid with big data will be exception handling

                  1 Reply Last reply
                  0
                  • J Jens Doose

                    Never heard of that, but a look at MSDN with _FPE_INVALID lead me to SIGFPE and that lead me to signal(), a function you can use to set your own signal handler. I never tried that but maybe this is worth a try? Jens

                    T Offline
                    T Offline
                    Tibor Blazko
                    wrote on last edited by
                    #11

                    it seems it will end with own fn of this kind just afraid with big data will be exception handling slow

                    1 Reply Last reply
                    0
                    • T Tibor Blazko

                      is there any (system) function can test memory pointer to know combination of bits there is real (double, float) value? something like this if(isValidDoubleValue(dptr)) dvalue = 0.0; else dvalue = *dptr; //always no exception crash here what will not crash (all i found (like _isnan) expect given bit combination represents valid state and crashes getting invalid one) thanks

                      C Offline
                      C Offline
                      Chris Meech
                      wrote on last edited by
                      #12

                      I'm might be missing something here, but if it just uninitialised variables, the following might help you out.

                      try
                      {
                      dValue = *dPtr;
                      }
                      catch( . . . )
                      {
                      dValue = 0.0;
                      }

                      Chris Meech We're more like a hobbiest in a Home Depot drooling at all the shiny power tools, rather than a craftsman that makes the chair to an exacting level of comfort by measuring the customer's butt. Marc Clifton VB is like a toolbox, in the hands of a craftsman, you can end up with some amazing stuff, but without the skills to use it right you end up with Homer Simpson's attempt at building a barbeque or his attempt at a Spice rack. Michael P. Butler

                      T 1 Reply Last reply
                      0
                      • T Tibor Blazko

                        is there any (system) function can test memory pointer to know combination of bits there is real (double, float) value? something like this if(isValidDoubleValue(dptr)) dvalue = 0.0; else dvalue = *dptr; //always no exception crash here what will not crash (all i found (like _isnan) expect given bit combination represents valid state and crashes getting invalid one) thanks

                        T Offline
                        T Offline
                        Tim Smith
                        wrote on last edited by
                        #13

                        Take a look at _isnan, _finite and _fpclass. Tim Smith I'm going to patent thought. I have yet to see any prior art.

                        1 Reply Last reply
                        0
                        • C Chris Meech

                          I'm might be missing something here, but if it just uninitialised variables, the following might help you out.

                          try
                          {
                          dValue = *dPtr;
                          }
                          catch( . . . )
                          {
                          dValue = 0.0;
                          }

                          Chris Meech We're more like a hobbiest in a Home Depot drooling at all the shiny power tools, rather than a craftsman that makes the chair to an exacting level of comfort by measuring the customer's butt. Marc Clifton VB is like a toolbox, in the hands of a craftsman, you can end up with some amazing stuff, but without the skills to use it right you end up with Homer Simpson's attempt at building a barbeque or his attempt at a Spice rack. Michael P. Butler

                          T Offline
                          T Offline
                          Tibor Blazko
                          wrote on last edited by
                          #14

                          yes, it seems it will end this way just comment if someone will read this: call _clearfp (or similar) before = 0.0 t!

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • World
                          • Users
                          • Groups