LIMIT ERROR: Difference between revisions

Jump to navigation Jump to search
27 bytes added ,  22:01, 10 September 2022
m
Text replacement - "<source" to "<syntaxhighlight"
m (Errors category)
m (Text replacement - "<source" to "<syntaxhighlight")
Line 1: Line 1:
A '''LIMIT ERROR''' is an [[error message]] indicating that some imposed limit of the interpreter (one that is due to resource or design rather than theoretical limitations) has prevented an operation from completing. Common cases are that a program attempted to create an array whose [[rank]] exceeds the [[maximum rank]] or whose length along one [[axis]] would exceed the maximum allowed length. In [[Dyalog APL]], the maximum rank is 15, so taking an [[Outer Product]] of two rank-8 arrays fails:
A '''LIMIT ERROR''' is an [[error message]] indicating that some imposed limit of the interpreter (one that is due to resource or design rather than theoretical limitations) has prevented an operation from completing. Common cases are that a program attempted to create an array whose [[rank]] exceeds the [[maximum rank]] or whose length along one [[axis]] would exceed the maximum allowed length. In [[Dyalog APL]], the maximum rank is 15, so taking an [[Outer Product]] of two rank-8 arrays fails:
<source lang=apl>
<syntaxhighlight lang=apl>
       ((8⍴1)⍴2) ∘.+ ((8⍴1)⍴3)
       ((8⍴1)⍴2) ∘.+ ((8⍴1)⍴3)
LIMIT ERROR: Rank of resultant array would exceed maximum permitted
LIMIT ERROR: Rank of resultant array would exceed maximum permitted
Line 7: Line 7:
</source>
</source>
{{Works in|[[Dyalog APL]]}}
{{Works in|[[Dyalog APL]]}}
In a 64-bit interpreter, it is rare to run into an array length limit, since the maximum allowed length is usually on the order of <source lang=apl inline>2*64</source>, and attempting to create an array this large may run into a [[DOMAIN ERROR]] or [[WS FULL]], as most machines do not have enough addressable memory to store it. [[Empty]] arrays do not need storage space, so working with arrays with one length-0 axis and one long axis can sometimes reveal a LIMIT ERROR:
In a 64-bit interpreter, it is rare to run into an array length limit, since the maximum allowed length is usually on the order of <syntaxhighlight lang=apl inline>2*64</source>, and attempting to create an array this large may run into a [[DOMAIN ERROR]] or [[WS FULL]], as most machines do not have enough addressable memory to store it. [[Empty]] arrays do not need storage space, so working with arrays with one length-0 axis and one long axis can sometimes reveal a LIMIT ERROR:
<source lang=apl>
<syntaxhighlight lang=apl>
       ((0,2*63)⍴2) , ((0,2*63)⍴3)
       ((0,2*63)⍴2) , ((0,2*63)⍴3)
LIMIT ERROR
LIMIT ERROR

Navigation menu