[
https://issues.apache.org/jira/browse/ARROW-3701?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16676112#comment-16676112
]
Pindikura Ravindra commented on ARROW-3701:
-------------------------------------------
> Also note that Boost has a 128-bit integer type, though I don't know how fast
> it is:
Repeated my earlier test with boost int128.
typedef boost::multiprecision::number<boost::multiprecision::cpp_int_backend<
128, 128, boost::multiprecision::signed_magnitude,
boost::multiprecision::unchecked,
void>>
int128_t;
||Operation||Time with 2 64-bit Integers||Time with boost int128||Time with
int128||
|Add|31|57|28|
|Subtract|30|77|27|
|Multiply|63|60|28|
|Divide|409|181|170|
Boost implementation is better than the util/Decimal128 impl for divide, but
worser for add/subtract. In all cases, int128 performs better.
> [Gandiva] Add support for decimal operations
> --------------------------------------------
>
> Key: ARROW-3701
> URL: https://issues.apache.org/jira/browse/ARROW-3701
> Project: Apache Arrow
> Issue Type: Task
> Components: Gandiva
> Reporter: Pindikura Ravindra
> Assignee: Pindikura Ravindra
> Priority: Major
>
> To begin with, will add support for 128-bit decimals. There are two parts :
> # llvm_generator needs to understand decimal types (value, precision, scale)
> # code decimal operations : add/subtract/multiply/divide/mod/..
> ** This will be c++ code that can be pre-compiled to emit IR code
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)