From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21509 invoked by alias); 16 Oct 2002 14:31:10 -0000 Mailing-List: contact gsl-discuss-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gsl-discuss-owner@sources.redhat.com Received: (qmail 21352 invoked from network); 16 Oct 2002 14:31:04 -0000 Received: from unknown (HELO cmailg1.svr.pol.co.uk) (195.92.195.171) by sources.redhat.com with SMTP; 16 Oct 2002 14:31:04 -0000 Received: from modem-1534.lemur.dialup.pol.co.uk ([217.135.133.254] helo=localhost.localdomain) by cmailg1.svr.pol.co.uk with esmtp (Exim 3.35 #1) id 181pCQ-0002wO-00 for gsl-discuss@sources.redhat.com; Wed, 16 Oct 2002 15:31:03 +0100 Subject: Interactive shell using GSL: mash v0.01 From: Scott Fraser To: gsl-discuss@sources.redhat.com Content-Type: text/plain Content-Transfer-Encoding: 7bit Date: Wed, 16 Oct 2002 07:31:00 -0000 Message-Id: <1034781980.501.24.camel@debian> Mime-Version: 1.0 X-SW-Source: 2002-q4/txt/msg00037.txt.bz2 Hi all! A couple of times I've mentioned that I was working on an interactive mathematical shell program using GSL. I *think* I've killed all the major bugs in the parser and have enough functions and some solver routines enabled to make it available for public consumption. I havn't gotten around to documenting the code properly (one of the main aims, to make it easier for others to add routines for functions and solver calls). There are also some big limitations, which are documented in the manual. Plus there are some bugs in the function calls, which I do know about. Code and said manual can be found at http://saf.curvedspaces.com/mash.html. To compile you need the GSL, and the readline library which gives it the same behaviour as bash (emacs style keybindings, history lookup, etc). Comments and suggestions are more than welcome. And this is my first major work in C++, so I know the code needs some improvement... Below is a small session listing which demonstrates some of the capabilities. Hopefully this might be useful to some of you. Thanks, Scott **** Begin session example **** scott@debian:~$ mash mash$ (3*7)/4 5.2500000000000000 mash$ J0(2) 0.2238907791412357 mash$ j0(2) 0.4546487134128409 mash$ Ai(3) + Bi'(1) 0.9390270727502363 mash$ solve(1,2,1) X0 = -1.0000000000000000 X1 = -1.0000000000000000 mash$ solve(1,0,0,1) x0 = -1.0000000000000000 x1 = 0.0000000000000000 x2 = 0.0000000000000000 mash$ zsolve(1,0,0,1) x0 = -1.0000000000000000 + 0.0000000000000000i x1 = 0.5000000000000000 + -0.8660254037844386i x2 = 0.5000000000000000 + 0.8660254037844386i mash$ ln(6) + exp(2) 9.1808155681587049 mash$ exit scott@debian:~$