You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Teddy Choi (JIRA)" <ji...@apache.org> on 2013/08/14 09:59:48 UTC

[jira] [Commented] (HIVE-4822) implement vectorized math functions

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

Teddy Choi commented on HIVE-4822:
----------------------------------

I had some difficulties to apply this patch today. By applying HIVE-4989 on the vectorization branch, outputDirectory and templateDirectory was changed. So this patch needs a few updates.

However, the code looks good. :)
                
> 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
>             Fix For: vectorization-branch
>
>         Attachments: HIVE-4822.1.patch, HIVE-4822.4.patch, HIVE-4822.5-vectorization.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