Le 2011-10-24 à 12:28:00, Quim Llimona a écrit :
Data structures, maybe? But I guess it would be very inefficient for large arrays (you would have to create an instance for each array element).
AFAIR, float arrays are just plain data structures. At least, they use a built-in template defined in a hidden patch that is always loaded. That template just contains «float y» and nothing else.
This also explains why float arrays are efficient (in a normal way) in 32-bit mode, but when you use 64-bit mode they are not anymore : pd's data-structures have that restriction that the smallest thing you can put in them is a «word», where «word» is defined as the biggest of float, symbol, pointer. In 32-bit mode, they all have the same size (4 bytes each), but in 64-bit mode, the latter two are twice bigger, so, the floats have to be padded.
Pd's data-structures don't have to be allocated as separate items. They can be allocated in array-fashion, as one big block.
What I say about Pd's data-structures doesn't apply to array-like types defined in other plugins, such as GridFlow, iemmatrix, iem16, Gem, PDP. In theory, plugins can use data-structures and define new stuff about data-structures, but in practice, no-one ever did.
| Mathieu BOUCHARD ----- téléphone : +1.514.383.3801 ----- Montréal, QC