DoubleArray

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

DoubleArray

Schwab,Wilhelm K
Squeak, deliberately, does not have a double array class.  Is that because there is some horrible reason it can't work, or because it won't work on certain platforms?  Put another way, should we add such a class, if only via an external heap or whatever would be needed to make it reliable?

Bill


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: DoubleArray

Henrik Sperre Johansen
  On 22.09.2010 23:09, Schwab,Wilhelm K wrote:
> Squeak, deliberately, does not have a double array class.  Is that because there is some horrible reason it can't work, or because it won't work on certain platforms?
If the goal is to pass it as a parameter to an external function, one
way would be to subclass WordArray, storing(and reading) each Float in
two elements, and have the endianness decided by Smalltalk endianness.
Probably want a startUp method for the class to swap instances
endianness if the platform has changed as well.
> Put another way, should we add such a class, if only via an external heap or whatever would be needed to make it reliable?
>
> Bill
More likely because no one has actually had a need for one.
It's definitely not _needed_ in base, where normal arrays of floats
would do the same job just as well, if not better.
IMHO, if someone makes one, it so should probably be part of a package
related to external interfacing.

Cheers,
Henry


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: DoubleArray

Schwab,Wilhelm K
Henry,

I have been getting away with #doubleAt: and #doubleAt:put:, and otherwise doing pretty much what you said, though I just use a byte array to hold the data.  It seems to work; for FFI, I end up passing void pointers instead of double pointers, which I don't like doing.

Your point about using ordinary arrays makes sense to a point, though even w/o external interfacing, there is still a use for DoubleArray just as there is a use for String vs. an array of characters.

Bill


________________________________________
From: [hidden email] [[hidden email]] On Behalf Of Henrik Sperre Johansen [[hidden email]]
Sent: Wednesday, September 22, 2010 5:23 PM
To: [hidden email]
Subject: Re: [Pharo-project] DoubleArray

  On 22.09.2010 23:09, Schwab,Wilhelm K wrote:
> Squeak, deliberately, does not have a double array class.  Is that because there is some horrible reason it can't work, or because it won't work on certain platforms?
If the goal is to pass it as a parameter to an external function, one
way would be to subclass WordArray, storing(and reading) each Float in
two elements, and have the endianness decided by Smalltalk endianness.
Probably want a startUp method for the class to swap instances
endianness if the platform has changed as well.
> Put another way, should we add such a class, if only via an external heap or whatever would be needed to make it reliable?
>
> Bill
More likely because no one has actually had a need for one.
It's definitely not _needed_ in base, where normal arrays of floats
would do the same job just as well, if not better.
IMHO, if someone makes one, it so should probably be part of a package
related to external interfacing.

Cheers,
Henry


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: DoubleArray

Igor Stasenko
On 23 September 2010 00:37, Schwab,Wilhelm K <[hidden email]> wrote:
> Henry,
>
> I have been getting away with #doubleAt: and #doubleAt:put:, and otherwise doing pretty much what you said, though I just use a byte array to hold the data.  It seems to work; for FFI, I end up passing void pointers instead of double pointers, which I don't like doing.
>
> Your point about using ordinary arrays makes sense to a point, though even w/o external interfacing, there is still a use for DoubleArray just as there is a use for String vs. an array of characters.
>

The main reason, why they are not here, that VM needs an additional
set of primitives, which working with them.

<sellsman hat on>
I can only say that with NativeBoost, you could be able to implement
it quite easily in image and ship it in image,
without a need to change VM or use external plugin.
<sellsman hat off>

> Bill
>
>
> ________________________________________
> From: [hidden email] [[hidden email]] On Behalf Of Henrik Sperre Johansen [[hidden email]]
> Sent: Wednesday, September 22, 2010 5:23 PM
> To: [hidden email]
> Subject: Re: [Pharo-project] DoubleArray
>
>  On 22.09.2010 23:09, Schwab,Wilhelm K wrote:
>> Squeak, deliberately, does not have a double array class.  Is that because there is some horrible reason it can't work, or because it won't work on certain platforms?
> If the goal is to pass it as a parameter to an external function, one
> way would be to subclass WordArray, storing(and reading) each Float in
> two elements, and have the endianness decided by Smalltalk endianness.
> Probably want a startUp method for the class to swap instances
> endianness if the platform has changed as well.
>> Put another way, should we add such a class, if only via an external heap or whatever would be needed to make it reliable?
>>
>> Bill
> More likely because no one has actually had a need for one.
> It's definitely not _needed_ in base, where normal arrays of floats
> would do the same job just as well, if not better.
> IMHO, if someone makes one, it so should probably be part of a package
> related to external interfacing.
>
> Cheers,
> Henry
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



--
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: DoubleArray

Schwab,Wilhelm K
Sig,

Fair enough :)  The most recent thing I recall on NativeBoost is Stef asking for what I assume must be a Mac plugin; I thought Linux would be left out too, but it appears not, though it is not in my current vm.  Beyond some list traffic, I found this:

   http://code.google.com/p/nativeboost/wiki/NativeBoost

Is there other documentation somewhere?  Build instructions?  You have a block copy, which is good.  What about indexing, such as getting floats or doubles out of external memory?  

I am very comfortable adding functions to a library for integer and float/double calculations on "large" arrays and calling them via FFI; plugins are another story.  Are there examples to follow?  

Bill


________________________________________
From: [hidden email] [[hidden email]] On Behalf Of Igor Stasenko [[hidden email]]
Sent: Wednesday, September 22, 2010 6:20 PM
To: [hidden email]
Subject: Re: [Pharo-project] DoubleArray

On 23 September 2010 00:37, Schwab,Wilhelm K <[hidden email]> wrote:
> Henry,
>
> I have been getting away with #doubleAt: and #doubleAt:put:, and otherwise doing pretty much what you said, though I just use a byte array to hold the data.  It seems to work; for FFI, I end up passing void pointers instead of double pointers, which I don't like doing.
>
> Your point about using ordinary arrays makes sense to a point, though even w/o external interfacing, there is still a use for DoubleArray just as there is a use for String vs. an array of characters.
>

The main reason, why they are not here, that VM needs an additional
set of primitives, which working with them.

<sellsman hat on>
I can only say that with NativeBoost, you could be able to implement
it quite easily in image and ship it in image,
without a need to change VM or use external plugin.
<sellsman hat off>

> Bill
>
>
> ________________________________________
> From: [hidden email] [[hidden email]] On Behalf Of Henrik Sperre Johansen [[hidden email]]
> Sent: Wednesday, September 22, 2010 5:23 PM
> To: [hidden email]
> Subject: Re: [Pharo-project] DoubleArray
>
>  On 22.09.2010 23:09, Schwab,Wilhelm K wrote:
>> Squeak, deliberately, does not have a double array class.  Is that because there is some horrible reason it can't work, or because it won't work on certain platforms?
> If the goal is to pass it as a parameter to an external function, one
> way would be to subclass WordArray, storing(and reading) each Float in
> two elements, and have the endianness decided by Smalltalk endianness.
> Probably want a startUp method for the class to swap instances
> endianness if the platform has changed as well.
>> Put another way, should we add such a class, if only via an external heap or whatever would be needed to make it reliable?
>>
>> Bill
> More likely because no one has actually had a need for one.
> It's definitely not _needed_ in base, where normal arrays of floats
> would do the same job just as well, if not better.
> IMHO, if someone makes one, it so should probably be part of a package
> related to external interfacing.
>
> Cheers,
> Henry
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



--
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project