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

Matt Juntunen commented on NUMBERS-156:
---------------------------------------

bq. I assume the ulp error for the unsafe method includes the cases where the 
result was not finite.

Yes, I thought I had corrected that but I guess not. Here is a better run.
||name||ulp error||std dev||non-finite||
|exact|0.00|0.00|0
|unsafe|0.000313|1.05e-06|10534|
|safe|0.0132|4.18e-05|0|
|herbert|0.000130|4.11e-07|0|

bq. I find it strange the unsafe method is slower. 

Huh? Direct computation ignoring overflow/underflow was the fastest in the 
benchmark.

bq. Are you suggesting something like ...

Yes, having a {{Norms}} class like that is what I was picturing. We don't 
necessarily need all of those methods, though. I currently only have a use case 
for the 3D euclidean norm and I think we should retain the array-based 
euclidean norm from {{SafeNorm}}. Besides those two methods, I thought it might 
be good to add other standard norms, even if they are trivial.

bq. Is there a use case for a safe implementation of the p-norm?

Not from me. I didn't know it existed until just now :-)

bq. Shouldn't we rather opt for functional interfaces:

Not sure what you mean. I don't want to have to instantiate an object to 
perform these computations. Also, the static methods could be used in a 
functional context as method references.




> SafeNorm 3D overload
> --------------------
>
>                 Key: NUMBERS-156
>                 URL: https://issues.apache.org/jira/browse/NUMBERS-156
>             Project: Commons Numbers
>          Issue Type: Improvement
>            Reporter: Matt Juntunen
>            Priority: Major
>
> We should create an overload of {{SafeNorm.value}} that accepts 3 arguments 
> to potentially improve performance for 3D vectors.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to