hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Hanson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-4822) implement vectorized math functions
Date Fri, 19 Jul 2013 19:32:48 GMT

    [ https://issues.apache.org/jira/browse/HIVE-4822?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13713988#comment-13713988
] 

Eric Hanson commented on HIVE-4822:
-----------------------------------

The current code does not update VectorizationContext.java to make the new math functions
run end-to-end. I'll open another JIRA for that.

Positive() and Negative() are not included. Positive() is a no-op and Negative() is already
implemented as unary minus.

E() and Pi() are not implemented. They should be implemented separately using constant folding.

Conv() is only implemented for string input, not number input. Conv() on number input, if
it is to be implemented in the future, should be done with an implicit cast of the argument
to a string, and then calling the Conv() for string input.

                
> implement vectorized math functions
> -----------------------------------
>
>                 Key: HIVE-4822
>                 URL: https://issues.apache.org/jira/browse/HIVE-4822
>             Project: Hive
>          Issue Type: Sub-task
>    Affects Versions: vectorization-branch
>            Reporter: Eric Hanson
>            Assignee: Eric Hanson
>         Attachments: HIVE-4822.1.patch, HIVE-4822.4.patch
>
>
> Implement vectorized support for the all the built-in math functions. This includes implementing
the vectorized operation, and tying it all together in VectorizationContext so it runs end-to-end.
These functions include:
> round(Col)
> Round(Col, N)
> Floor(Col)
> Ceil(Col)
> Rand(), Rand(seed)
> Exp(Col)
> Ln(Col)
> Log10(Col)
> Log2(Col)
> Log(base, Col)
> Pow(col, p), Power(col, p)
> Sqrt(Col)
> Bin(Col)
> Hex(Col)
> Unhex(Col)
> Conv(Col, from_base, to_base)
> Abs(Col)
> Pmod(arg1, arg2)
> Sin(Col)
> Asin(Col)
> Cos(Col)
> ACos(Col)
> Atan(Col)
> Degrees(Col)
> Radians(Col)
> Positive(Col)
> Negative(Col)
> Sign(Col)
> E()
> Pi()
> To reduce the total code volume, do an implicit type cast from non-double input types
to double. 
> Also, POSITITVE and NEGATIVE are syntactic sugar for unary + and unary -, so reuse code
for those as appropriate.
> Try to call the function directly in the inner loop and avoid new() or expensive operations,
as appropriate.
> Templatize the code where appropriate, e.g. all the unary function of form 
> DOUBLE func(DOUBLE)
> can probably be done with a template.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message