|
From: Duncan T. L. <du...@wa...> - 2006-06-07 03:48:21
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Can you show us some of the overloaded functions, please? I don't know what you mean by a "large" number of arguments and why you are generating functions with a large number of parameters so it would be helpful to see what you are generating. D. Joseph Wang wrote: > The problem I'm running into is that an overloaded r function with large > numbers of arguments seem to be eating up huge amounts of memory, causing my > 512 meg machine to run out of free memory before loading the wrapper. > > The trouble is that the functions with large numbers of option arguments > generate r overloaded functions. > > One way I've been able to get things to work is by defining > > #if defined(SWIGR) > #define OPTIONAL(x, y) x > #else > #define OPTIONAL(x, y) x = y > #endif > > and then > > ParCouponPtr(Real nominal, const Date& paymentDate, > const XiborPtr& index, > const Date& startDate, const Date& endDate, > Integer fixingDays, > OPTIONAL(Spread spread, 0.0), > OPTIONAL(const Date& refPeriodStart, Date()), > OPTIONAL(const Date& refPeriodEnd, Date()) > > This forces R to remove the optional arguments, which means that R no longer > uses overloading to represent these long functions, which bypasses the memory > bloating. > > I've e-mailed the r-help list for any suggestions to get around the memory > bloat. > > I'm curious if anyone has any other ideas on how to handle this. One thing > that might be possible is to turn off operator overloading in R-SWIG if there > are more than six arguments, and then to use a herustic to figure out which > method to generate a wrapper for. > > Thoughts? - -- Duncan Temple Lang du...@wa... Department of Statistics work: (530) 752-4782 4210 Mathematical Sciences Building fax: (530) 752-7099 One Shields Ave. University of California at Davis Davis, CA 95616, USA -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (Darwin) iD8DBQFEhkxg9p/Jzwa2QP4RAp8zAJ9fq4+xV3cjD4+uhB8SkCk18JPUuACdEMA0 Fp5feNGFE2CmiGJrrkJ6cv4= =w/8W -----END PGP SIGNATURE----- |