[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: shell wrappers for trig and other mathematical functions



* Dan Hitt <dan.hitt@gmail.com> [19-10/01=Tue 21:18 -0700]:
> On Tue, Oct 1, 2019 at 8:58 PM David Christensen <dpchrist@holgerdanske.com>
> wrote:
> 
> > On 10/1/19 8:32 PM, Dan Hitt wrote:
> > > I'm half-way looking for some shell wrappers for common trig functions
> > like
> > > sin, cos, exp, log, and others.
> > >
> > > I'm aware of bc, but it seems cumbersome.
> > >
> > > I would like to just type 'sin 1' and get the sine (of 1 radian),
> >
> > Perl one-liners are an option:
> >
> > 2019-10-01 19:25:59 dpchrist@tinkywinky ~
> > $ perl -e 'print sin 1'
> > 0.841470984807897
> >
> >
> > > or type 'log 2'
> >
> > 2019-10-01 20:48:52 dpchrist@tinkywinky ~
> > $ perl -e 'print log 2'
> > 0.693147180559945
> >
> >
> > > and get the natural or maybe common log of 2.  (Probably any such
> > > program should do something intelligent when faced with multiple or zero
> > > arguments, such as computing the sine or log of each, so that they could
> > be
> > > chained together.  And maybe such a program would pay attention to
> > > environment variables or optional command line arguments to tune its
> > > behavior.)
> > >
> > > These kinds of programs would be super-easy to write in just about any
> > > language (i guess perhaps even just as bash functions which shell out to
> > bc
> > > for at least some of the simpler functions) but before i actually do
> > > something like that, i wonder if somebody has already done it, whether
> > > there exist any standards or good ideas, etc.  (Because if somebody has a
> > > good, thoughtful exp program, for example, then it could be cookie-cutter
> > > copied to a bunch of other functions.)
> > >
> > > There is a precedent of sorts in Paul Rubin's factor program, which is
> > just
> > > oh-so-handy when you're wondering how an integer factors, but don't want
> > to
> > > start up some heavy-weight system just to find out.
> >
> > 2019-10-01 20:49:17 dpchrist@tinkywinky ~
> > $ apt-cache search libmath-prime-util-perl
> > libmath-prime-util-perl - utilities related to prime numbers, including
> > fast sieves and factoring
> >
> >
> > > Thanks in advance for any pointers or advice!  :)
> > >
> > > dan
> >
> >
> > David
> >
> >
> Hi David,
> 
> Thanks so much for your reply, including the apt-cache searching part.
> 
> It does look like a way to quickly get values for sine (or any other
> function in perl).
> 
> However, i would like to dispense entirely with the 'perl -e' and 'print'
> part.  I really would like stand-alone programs.  This would absolutely
> minimize any typing, and if the programs had a set of good conventions,
> then they would provide a model for writing others if the functions i want
> are not already available in perl (or other interpreter).
> 
> Thanks again for the suggestion and example!! :)
> 
> dan

/pts/8 bash ~ 04:33 0$withsetf(){ "$@"; set +f;}
/pts/8 bash ~ 04:33 0$perlPrint(){ perl -wle "\$,=' ';print +(do{$*})";}
/pts/8 bash ~ 04:33 0$alias pp='set -f;withsetf perlPrint'
/pts/8 bash ~ 04:33 0$pp sin 1
0.841470984807897
/pts/8 bash ~ 04:34 0$pp 3 * 3
9
/pts/8 bash ~ 04:34 0$pp 3 ** 3
27
/pts/8 bash ~ 04:34 0$pp .6 + 1.3
1.9
/pts/8 bash ~ 04:34 0$alias sin='pp sin' # etc, if you want

-- 
                 Will Mengarini  <seldon@eskimo.com>
         Free software: the Source will be with you, always.
               sh -c 'echo -n MENGARINI|sum -s|colrm 4'
                perl -le"print unpack '%C*',MENGARINI"


Reply to: