From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,FREEMAIL_FROM, INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,c7f5c70275787af8 X-Google-Attributes: gid103376,public From: "Vladimir Olensky" Subject: Re: Scientific calculations (was Re: Ada vs Delphi? ) Date: 1999/08/15 Message-ID: #1/1 X-Deja-AN: 512839816 References: <37ab421a.5414989@news.total.net> <37ab8bd1.0@news.pacifier.com> <37ae1fc8.653954@news.clara.net> <7os9j4$fs7$1@nnrp1.deja.com> <7ovp6j$vrl$1@nnrp1.deja.com> Organization: Posted via Supernews, http://www.supernews.com X-Mimeole: Produced By Microsoft MimeOLE V4.72.3110.3 Newsgroups: comp.lang.ada X-Complaints-To: newsabuse@supernews.com Date: 1999-08-15T00:00:00+00:00 List-Id: Robert Dewar wrote in message <7ovp6j$vrl$1@nnrp1.deja.com>... >In article , > "Vladimir Olensky" wrote: >> Taking into account your comments I might think that you >probably are not >> very familiar with these tools or did not use them much. >> > > >I am actually very familiar with these tools, they are just not >relevant for large segments of the scientific programming >community (I hope you do not think MINDO3 could have been >done using Mathcad :-) If it is already done in any programming language then it can be easily added to MathCad Professional. It's one of it's powers to be easily extended. Of course no one will insist to use MathCad to simulate nuclear explosion or do weather forecast or solve aerodynamic equations (aerodynamic tube tests simulation) in a scaled real-time manner. These *big* kinds of problems require supercomputers, parallel computation threads using multiprocessors systems etc. As Gautier mentioned MathCad and others such tools are user oriented and better suited for relatively "small" problems. The border line between "small" and "big" calculations depends on several different factors and can be easily estimated. Some *big* calculations (from numerical point of view) may be transformed to *small* ones using symbolic calculation engine or can even be solved symbolically which is most preferable. What is interesting what is "small" now in MathCad was really "big" some time ago. Moreover as results of work in the field of artificial intelligence gets implemented in such products their power is amazingly increasing (again about AI - symbolic engine- this is what I like most of all). I do not know much how Maple and Mathematica deal with it but MathCad Professional (only Professional version) is easily extendable with your own computational functions that become part of it. In this sense MathCad Professional is close to other open integrated development systems like Delphi. MathCad Professional comes with nice user guide of how to do this and it supplies all the include files and LIB files with MathCad specific data for different compilers (unfortunately no Ada among them - mostly C,CPP -but Ada can be used also after translating small C header file to Ada). As far as for speed all of MathCad built-in formulas have been done in efficient manner (e.g. creating vector V of MAX(i)=100000 elements and then applying sin(Pi/k) to each element takes six seconds on my PC. I did the similar things (applying some function to each vector element) with vectors of 10000000 elements and no problems ( time taken depends on amount of phisycal memory - if memory occupied by vector is greater then this time is affectred by the memory swapping with HD) Dynamic formulars which user creates using MathCad scripting language of course have a speed of any scripting language. So if one can not find what is needed within built-it functions and he/she is not satisfied with the speed of dynamic formulas (when calculations need to be done frequently for long period of time) and there is no commercial libraries in this area from vendor or third parties them one can create his/her own libraries (DLLs) for use them with MathCad. After that your numerical sulutions become part of MathCad and will be combined with all other powers of it. Very similar to Delphi. Quote from MathCad documentation: "To create customized functions, you will first need to create source code in C or C++, then compile the source code with a 32-bit compiler. Next, you will link the object files together with the MathSoft-provided mcaduser.lib library to create a DLL. Finally, you will place your DLL into the userefi subdirectory and add an entry to user.xml so that your function appears in the Insert Function dialog box." As far for speed of numeric calculations this is only last fraction of all the time spent to solve the problem. Previous one is time to express problem in the language of the tool you are using. As MathCad uses human language then this time is relatively small. If one prefers to do it using any programming language then this will be the time to code this problem in programming language, build it, debug etc. and make sure that everything is correct from all points of view. The sum of these time and computation time gives you time to solve the problem. >From above it is clear where is the border between "small" and "big" calculations. Of course there are many other factors that can move this border in both directions. Regards.