Anuviel Posted June 26, 2007 Posted June 26, 2007 What is the maximum length of a calculation? Not the result but the actual thing when you write the calculation - is there a limit?
Fenton Posted June 26, 2007 Posted June 26, 2007 From FileMaker Tech Info http://www.filemaker.com/support/techinfo.html Article #6074 Technical Specifications of FileMaker Pro 8.5 and FileMaker Pro 8.5 Advanced Size of calculation formula: Maximum of 30,000 characters, including text and numbers, any referenced fields, operators, functions and parentheses.
AudioFreak Posted June 27, 2007 Posted June 27, 2007 (edited) This question intrigued me due to the fact that FM8 can handle so much more than older versions......I couldn't find an answer though. Honestly would think you are unlimited overall though, considering you could use seperate fields if you were limited and break the calc up. But I woulkd like to know the answer too if there is one. Edit: lol....Nice Fenton...I looked and didnt see that one. Edited June 27, 2007 by Guest
Fenton Posted June 27, 2007 Posted June 27, 2007 I believe there is also a limit to the number of nested "operations" within a calculation. It used to be about 300. You get a message when you reach it. It's only happened to me once, a long time ago, in FileMaker 5. I don't think know if the calculation limitations have increased since then; the 30,000 is the same as it was I think. Of course, as you say, you can use more than 1 field. Or nowdays a recursive Custom Function; if you can write the darn thing :-].
Ugo DI LUCA Posted June 27, 2007 Posted June 27, 2007 Hi Fenton, There seems to be a limit in the number of 'nested' Evaluation ( ), but I can't find this information anywhere. Anyone knows the answer ? What I call next should rather be called combination Evaluation ( my formula ) & "¶" & Evaluation ( my formula ) etc...
The Shadow Posted June 27, 2007 Posted June 27, 2007 (edited) The 30,000 char limit is for the calculation dialog, the calc-engine is limited only by stack space used to parse and execute, so it depends on what you're doing. Here's an example file, it shows with 8.5 I'm able to sucessfully nest about 1000 If(). Adding numbers like: 1+1+1+1+1+....+1 lets me do about 3200 additions. Finally, a simple calculation of Evaluate( Quote( ) ) shows the calc engine operating on text in excess of 150K. BigCalcs.fp7.zip Edited June 27, 2007 by Guest clarification
Ugo DI LUCA Posted June 27, 2007 Posted June 27, 2007 (edited) As expected the Shadow knows : Thanks Shawn for the piece of information. For some reason, in my own testing files, I don't get the same result from PPC to Intel Is that something new also ? Edited June 27, 2007 by Guest
The Shadow Posted June 27, 2007 Posted June 27, 2007 Since FMP7, the limitation is the machine's stack, and the stack layout can differ on different platform. To be clearer, the processor stack is used up by recursive C++ calls, and the number of paramters and locals they have, and their types (and therefore sizes). One set of (C++ call, parameters, locals) is usually referred to as a stack frame, and I wouldn't expect them to be the same size on different platforms - often the calling conventions the processor affect this size.
The Shadow Posted June 28, 2007 Posted June 28, 2007 Evaluation ( my formula ) & "¶" & Evaluation ( my formula ) etc... Another thing I should probably mention, while I was only able to add 3200 times using: 1+1+...+1 It can be made to go much higher using: (1+1+...<3200 times>...+1) + (1+1+...<3200 times>...+1) This is due to the fact that the parse tree is not so deep, as the calc engine sees 1+1+1+1 as if it were written: ((1+1)+1)+1 since addition is a left-associative operator. A similar change should also allow more Evaluate()'s to be used in a single calculation.
mr_vodka Posted June 28, 2007 Posted June 28, 2007 Dont know when I would ever pratically use this many characters in one calc but its great to know anyway. Thanks for the info as usual! :P
Ugo DI LUCA Posted June 28, 2007 Posted June 28, 2007 Excellent, thanks Shawn. For information, I was lately working on a non recursive function involving Substitute and Evaluation to grab the entire foundset. It effectively breaks as you state after 32,000 evaluation, but it stil works faster than any of the function I have crossed ( though not as fast as the copy all records ) Well, I just love these explanations on how the engine really work
Recommended Posts
This topic is 6419 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now