]> gitweb.factorcode.org Git - factor.git/blob - basis/core-foundation/numbers/numbers.factor
Remove many uses of <int> and *int etc
[factor.git] / basis / core-foundation / numbers / numbers.factor
1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.c-types alien.syntax kernel math core-foundation ;
4 FROM: math => float ;
5 IN: core-foundation.numbers
6
7 TYPEDEF: void* CFNumberRef
8
9 TYPEDEF: int CFNumberType
10 CONSTANT: kCFNumberSInt8Type 1
11 CONSTANT: kCFNumberSInt16Type 2
12 CONSTANT: kCFNumberSInt32Type 3
13 CONSTANT: kCFNumberSInt64Type 4
14 CONSTANT: kCFNumberFloat32Type 5
15 CONSTANT: kCFNumberFloat64Type 6
16 CONSTANT: kCFNumberCharType 7
17 CONSTANT: kCFNumberShortType 8
18 CONSTANT: kCFNumberIntType 9
19 CONSTANT: kCFNumberLongType 10
20 CONSTANT: kCFNumberLongLongType 11
21 CONSTANT: kCFNumberFloatType 12
22 CONSTANT: kCFNumberDoubleType 13
23 CONSTANT: kCFNumberCFIndexType 14
24 CONSTANT: kCFNumberNSIntegerType 15
25 CONSTANT: kCFNumberCGFloatType 16
26 CONSTANT: kCFNumberMaxType 16
27
28 FUNCTION: CFNumberRef CFNumberCreate ( CFAllocatorRef allocator, CFNumberType theType, void* valuePtr ) ;
29
30 GENERIC: <CFNumber> ( number -- alien )
31
32 M: integer <CFNumber>
33     [ f kCFNumberLongLongType ] dip longlong <ref> CFNumberCreate ;
34
35 M: float <CFNumber>
36     [ f kCFNumberDoubleType ] dip double <ref> CFNumberCreate ;
37
38 M: t <CFNumber>
39     drop f kCFNumberIntType 1 int <ref> CFNumberCreate ;
40
41 M: f <CFNumber>
42     drop f kCFNumberIntType 0 int <ref> CFNumberCreate ;
43