Class: Float64

Inherits:
JAVA::Value show all
Defined in:
ext/primitive/primitive.c

Constant Summary collapse

NEGATIVE_INFINITY =
__allocate_Float64(-INFINITY)
POSITIVE_INFINITY =
__allocate_Float64(INFINITY)

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from JAVA::Value

const_missing

Class Method Details

.[](o) ⇒ Object



2420
2421
2422
2423
2424
2425
# File 'ext/primitive/primitive.c', line 2420

static VALUE
r_Float64_new(VALUE self, VALUE o)
{
	double value = __accept_float64(o);
	return __allocate_Float64(value);
}

Instance Method Details

#!=(o) ⇒ Object



2538
2539
2540
2541
2542
2543
2544
2545
# File 'ext/primitive/primitive.c', line 2538

static VALUE
r_Float64_ne(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	double v = __accept_float64(o);
	return p->value != v ? Qtrue : Qfalse;
}

#%(o) ⇒ Object



2574
2575
2576
2577
2578
2579
2580
2581
# File 'ext/primitive/primitive.c', line 2574

static VALUE
r_Float64_mod(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	double v = __accept_float64(o);
	return __allocate_Float64(__mod_float64(p->value, v));
}

#*(o) ⇒ Object



2558
2559
2560
2561
2562
2563
2564
2565
# File 'ext/primitive/primitive.c', line 2558

static VALUE
r_Float64_mul(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	double v = __accept_float64(o);
	return __allocate_Float64(p->value * v);
}

#+(o) ⇒ Object



2582
2583
2584
2585
2586
2587
2588
2589
# File 'ext/primitive/primitive.c', line 2582

static VALUE
r_Float64_add(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	double v = __accept_float64(o);
	return __allocate_Float64(p->value + v);
}

#+@Object



2546
2547
2548
2549
2550
# File 'ext/primitive/primitive.c', line 2546

static VALUE
r_Float64_pos(VALUE self)
{
	return self;
}

#-(o) ⇒ Object



2590
2591
2592
2593
2594
2595
2596
2597
# File 'ext/primitive/primitive.c', line 2590

static VALUE
r_Float64_sub(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	double v = __accept_float64(o);
	return __allocate_Float64(p->value - v);
}

#-@Object



2551
2552
2553
2554
2555
2556
2557
# File 'ext/primitive/primitive.c', line 2551

static VALUE
r_Float64_neg(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __allocate_Float64(-p->value);
}

#/(o) ⇒ Object



2566
2567
2568
2569
2570
2571
2572
2573
# File 'ext/primitive/primitive.c', line 2566

static VALUE
r_Float64_div(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	double v = __accept_float64(o);
	return __allocate_Float64(__div_float64(p->value, v));
}

#<(o) ⇒ Object



2610
2611
2612
2613
2614
2615
2616
2617
# File 'ext/primitive/primitive.c', line 2610

static VALUE
r_Float64_lt(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	double v = __accept_float64(o);
	return p->value < v ? Qtrue : Qfalse;
}

#<=(o) ⇒ Object



2618
2619
2620
2621
2622
2623
2624
2625
# File 'ext/primitive/primitive.c', line 2618

static VALUE
r_Float64_le(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	double v = __accept_float64(o);
	return p->value <= v ? Qtrue : Qfalse;
}

#<=>(o) ⇒ Object



2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
# File 'ext/primitive/primitive.c', line 2598

static VALUE
r_Float64_cmp(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	double v = __accept_float64(o);
	if (p->value < v)
		return r_INT32_M1;
	if (p->value > v)
		return r_INT32_1;
	return r_INT32_0;
}

#==(o) ⇒ Object



2530
2531
2532
2533
2534
2535
2536
2537
# File 'ext/primitive/primitive.c', line 2530

static VALUE
r_Float64_eq(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	double v = __accept_float64(o);
	return p->value == v ? Qtrue : Qfalse;
}

#===(o) ⇒ Object



2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
# File 'ext/primitive/primitive.c', line 2426

static VALUE
r_Float64_equals(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	if (TYPE(o) == T_DATA) {
		if (RBASIC(o)->klass == r_Float64) {
			Float64 *op;
			Data_Get_Struct(o, Float64, op);
			if (p->value == op->value)
				return Qtrue;
		}
	}
	return Qfalse;
}

#>(o) ⇒ Object



2634
2635
2636
2637
2638
2639
2640
2641
# File 'ext/primitive/primitive.c', line 2634

static VALUE
r_Float64_gt(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	double v = __accept_float64(o);
	return p->value > v ? Qtrue : Qfalse;
}

#>=(o) ⇒ Object



2626
2627
2628
2629
2630
2631
2632
2633
# File 'ext/primitive/primitive.c', line 2626

static VALUE
r_Float64_ge(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	double v = __accept_float64(o);
	return p->value >= v ? Qtrue : Qfalse;
}

#as_fObject



2523
2524
2525
2526
2527
2528
2529
# File 'ext/primitive/primitive.c', line 2523

static VALUE
r_Float64_to_f(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __float64_to_f(p->value);
}

#as_rubyObject



2523
2524
2525
2526
2527
2528
2529
# File 'ext/primitive/primitive.c', line 2523

static VALUE
r_Float64_to_f(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __float64_to_f(p->value);
}

#eql?(o) ⇒ Boolean

Returns:

  • (Boolean)


2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
# File 'ext/primitive/primitive.c', line 2426

static VALUE
r_Float64_equals(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	if (TYPE(o) == T_DATA) {
		if (RBASIC(o)->klass == r_Float64) {
			Float64 *op;
			Data_Get_Struct(o, Float64, op);
			if (p->value == op->value)
				return Qtrue;
		}
	}
	return Qfalse;
}

#equals(o) ⇒ Object



2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
# File 'ext/primitive/primitive.c', line 2426

static VALUE
r_Float64_equals(VALUE self, VALUE o)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	if (TYPE(o) == T_DATA) {
		if (RBASIC(o)->klass == r_Float64) {
			Float64 *op;
			Data_Get_Struct(o, Float64, op);
			if (p->value == op->value)
				return Qtrue;
		}
	}
	return Qfalse;
}

#hashObject



2455
2456
2457
2458
2459
2460
2461
# File 'ext/primitive/primitive.c', line 2455

static VALUE
r_Float64_hash(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return LONG2NUM((long) __hash_float64(p->value));
}

#hashCodeObject



2441
2442
2443
2444
2445
2446
2447
# File 'ext/primitive/primitive.c', line 2441

static VALUE
r_Float64_hashCode(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __allocate_Int32(__hash_float64(p->value));
}

#inspectObject



2462
2463
2464
2465
2466
2467
2468
# File 'ext/primitive/primitive.c', line 2462

static VALUE
r_Float64_to_s(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __float64_to_s(p->value);
}

#to_byteObject



2469
2470
2471
2472
2473
2474
2475
# File 'ext/primitive/primitive.c', line 2469

static VALUE
r_Float64_to_byte(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __allocate_Byte((int8_t) p->value);
}

#to_charObject



2476
2477
2478
2479
2480
2481
2482
# File 'ext/primitive/primitive.c', line 2476

static VALUE
r_Float64_to_char(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __allocate_Char((uint16_t) p->value);
}

#to_fObject



2523
2524
2525
2526
2527
2528
2529
# File 'ext/primitive/primitive.c', line 2523

static VALUE
r_Float64_to_f(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __float64_to_f(p->value);
}

#to_float32Object



2504
2505
2506
2507
2508
2509
2510
# File 'ext/primitive/primitive.c', line 2504

static VALUE
r_Float64_to_float32(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __allocate_Float32((float) p->value);
}

#to_float64Object



2511
2512
2513
2514
2515
# File 'ext/primitive/primitive.c', line 2511

static VALUE
r_Float64_to_float64(VALUE self)
{
	return self;
}

#to_iObject



2516
2517
2518
2519
2520
2521
2522
# File 'ext/primitive/primitive.c', line 2516

static VALUE
r_Float64_to_i(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __float64_to_i(p->value);
}

#to_intObject



2516
2517
2518
2519
2520
2521
2522
# File 'ext/primitive/primitive.c', line 2516

static VALUE
r_Float64_to_i(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __float64_to_i(p->value);
}

#to_int16Object



2483
2484
2485
2486
2487
2488
2489
# File 'ext/primitive/primitive.c', line 2483

static VALUE
r_Float64_to_int16(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __allocate_Int16((int16_t) p->value);
}

#to_int32Object



2490
2491
2492
2493
2494
2495
2496
# File 'ext/primitive/primitive.c', line 2490

static VALUE
r_Float64_to_int32(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __allocate_Int32((int32_t) p->value);
}

#to_int64Object



2497
2498
2499
2500
2501
2502
2503
# File 'ext/primitive/primitive.c', line 2497

static VALUE
r_Float64_to_int64(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __allocate_Int64((int64_t) p->value);
}

#to_sObject



2462
2463
2464
2465
2466
2467
2468
# File 'ext/primitive/primitive.c', line 2462

static VALUE
r_Float64_to_s(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return __float64_to_s(p->value);
}

#toStringObject



2448
2449
2450
2451
2452
2453
2454
# File 'ext/primitive/primitive.c', line 2448

static VALUE
r_Float64_toString(VALUE self)
{
	Float64 *p;
	Data_Get_Struct(self, Float64, p);
	return rb_funcall(__float64_to_s(p->value), TO_J_ID, 0);
}