Calling functions with huge arguments

*To*: mathgroup at smc.vnet.net*Subject*: [mg97621] Calling functions with huge arguments*From*: Fernando Cucchietti <fernando.cucchietti at icfo.es>*Date*: Tue, 17 Mar 2009 04:59:17 -0500 (EST)

Hi all, I am working with a VERY large tensor, so much that I would like to keep at most two copies of it in memory at any given time. The algorithm I want to run is convoluted and repetitive, but it looks very compact when written in terms of subroutines and functions that call themselves many times. However, from what I gather, Mathematica effectively creates a copy of the arguments when a function is called. Is this correct? If so, I need to find a way to mimic pass-by-reference style as in C or Fortran, or just pass the arguments that are not big and keep my tensors defined globally (which I think makes the code look less nice). Unwrapping the code so that it does not call functions is not an option, because it would be very complex and never-again-usable. My main question is then: what are the best ways to do pass-by- reference (if it is better than global naming), or what approaches have you taken to overcome similar problems? Thanks in advance, Fernando

**Follow-Ups**:**Re: Calling functions with huge arguments***From:*DrMajorBob <btreat1@austin.rr.com>