Ruby  3.4.0dev (2024-12-06 revision 892c46283a5ea4179500d951c9d4866c0051f27b)
Macros | Functions
double.h File Reference

(892c46283a5ea4179500d951c9d4866c0051f27b)

Arithmetic conversion between C's double and Ruby's. More...

#include "ruby/internal/attr/pure.h"
#include "ruby/internal/dllexport.h"
#include "ruby/internal/value.h"
Include dependency graph for double.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define NUM2DBL   rb_num2dbl
 Old name of rb_num2dbl. More...
 
#define RFLOAT_VALUE   rb_float_value
 Old name of rb_float_value. More...
 
#define DBL2NUM   rb_float_new
 Old name of rb_float_new. More...
 

Functions

double rb_num2dbl (VALUE num)
 Converts an instance of rb_cNumeric into C's double. More...
 
double rb_float_value (VALUE num)
 Extracts its double value from an instance of rb_cFloat. More...
 
VALUE rb_float_new (double d)
 Converts a C's double into an instance of rb_cFloat. More...
 
VALUE rb_float_new_in_heap (double d)
 Identical to rb_float_new(), except it does not generate Flonums. More...
 

Detailed Description

Arithmetic conversion between C's double and Ruby's.

Author
Ruby developers ruby-.nosp@m.core.nosp@m.@ruby.nosp@m.-lan.nosp@m.g.org
Warning
Symbols prefixed with either RBIMPL or rbimpl are implementation details. Don't take them as canon. They could rapidly appear then vanish. The name (path) of this header file is also an implementation detail. Do not expect it to persist at the place it is now. Developers are free to move it anywhere anytime at will.
Note
To ruby-core: remember that this header can be possibly recursively included from extension libraries written in C++. Do not expect for instance __VA_ARGS__ is always available. We assume C99 for ruby itself but we don't assume languages of extension libraries. They could be written in C++98.

Definition in file double.h.

Function Documentation

◆ rb_float_new()

VALUE rb_float_new ( double  d)

Converts a C's double into an instance of rb_cFloat.

Parameters
[in]dArbitrary double value.
Returns
An instance of rb_cFloat.

Definition at line 6525 of file numeric.c.

Referenced by rb_fiber_scheduler_make_timeout().

◆ rb_float_new_in_heap()

VALUE rb_float_new_in_heap ( double  d)

Identical to rb_float_new(), except it does not generate Flonums.

Parameters
[in]dArbitrary double value.
Returns
An instance of rb_cFloat.

Definition at line 991 of file numeric.c.

◆ rb_float_value()

double rb_float_value ( VALUE  num)

Extracts its double value from an instance of rb_cFloat.

Parameters
[in]numAn instance of rb_cFloat.
Precondition
Must not pass anything other than a Fixnum.
Returns
The passed value converted into C's double.

Definition at line 6518 of file numeric.c.