hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Edward Capriolo (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-4822) implement vectorized math functions
Date Wed, 24 Jul 2013 18:37:48 GMT

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

Edward Capriolo commented on HIVE-4822:
---------------------------------------

I am a bit unclear as to what 'describe extended function cos' will show. Showing the documentation
from another piece of code does not really make sense. Are we going to support all the UDFs
with all the signatures? Are we sure that functions that operate on doubles and floats are
going to round exactly the same way? Do we have a wiki page or something where we are keeping
track of what is currently supported using vectorization?
                
> 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

Mime
View raw message