Good on you to point to the SpecialCombinations page, but you are in the
wrong section. In earlier J in-place operations were performed only on
specific forms using assignment, but now in-place execution is used all
over and the section you mentioned is the only remaining vestige of an
operation that requires a specific form.
The current state of things is described at
https://code.jsoftware.com/wiki/Vocabulary/SpecialCombinations#Execution_In_Place_.28EIP.29
Execution in place reduces cache footprint and runs faster.
Henry Rich
On 10/25/2020 8:41 AM, Jan-Pieter Jacobs wrote:
I guess this is worth mentioning here:
https://code.jsoftware.com/wiki/Vocabulary/SpecialCombinations#Assignments_In_Place_.28AIP.29
Assignments are done in place if you use a specific form recognised by the
interpreter.
If you do not assign the result, or use it in a longer sentence, it will
not be recognised, copying over the entire array, rather than updating a
single element.
Best regards,
Jan-Pieter
On Sun, Oct 25, 2020, 11:56 Hauke Rehr <[email protected]> wrote:
I’d expect it’s allocation and copying.
And as you execute it in the repl, there’s no compiler involved.
Rather, the JE “knows” it’s dealing with a single element only.
Am 25.10.20 um 11:52 schrieb pietdion:
Ok. Thanks.
What explains the huge time difference?
Does the compiler somehow “know” it’s only dealing with one element in
the in place assignment?
On 25 Oct 2020, at 7:25 pm, Lippu Esa <[email protected]> wrote:
Hello
It is not expensive if an in place assignment can be made:
a=.i.1e7
ts '(_999+1000{a) 1000 }a'
0.07655064 134219392
ts 'a=.(_999+1000{a) 1000 }a'
0.00000177 1792
Esa
-----Original Message-----
From: Programming <[email protected]> On Behalf
Of pietdion
Sent: Sunday, October 25, 2020 9:58 AM
To: Programming forum <[email protected]>
Subject: [Jprogramming] Adding constant to a specified element of a
vector
What is the best way to add, say, scalar x to component i of vector y?
One way is (x + i{y) i} y
But this seems clumsy/expensive.
Is there a cleaner/more efficient way?
----------------------------------------------------------------------
For information about J forums see
https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.jsoftware.com%2Fforums.htm&data=04%7C01%7C%7C846dab3174224b01be8508d878bbba64%7C5090e269dbea4e98a9aa3e70be5890f7%7C0%7C0%7C637392094979944278%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=q2LAzVmaMgPTY86v0%2FpBEascSJSwOoSYOMbgwC%2FxQUQ%3D&reserved=0
Tämän viestin sisältö liitteineen on luottamuksellinen ja tarkoitettu
vain sen vastaanottajalle. Jos et ole viestin tarkoitettu vastaanottaja,
pyydämme sinua poistamaan viestin liitteineen ja sen jälkeen ilmoittamaan
asiasta välittömästi viestin lähettäjälle. Viestin sisällön paljastaminen,
kopioiminen tai muu käyttö on kielletty.
The contents of this message and any attachments are confidential and
meant solely for the intended recipient. If you are not the intended
recipient, we kindly ask that you delete the message and its attachments,
and immediately notify the sender of the email. Disclosing, copying or
using the contents of the message is strictly prohibited.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
--
----------------------
mail written using NEO
neo-layout.org
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
--
This email has been checked for viruses by AVG.
https://www.avg.com
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm