Visit Our UNIX and Linux User Community


Perl - maths equation - need help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Perl - maths equation - need help
# 1  
Old 02-17-2009
Perl - maths equation - need help

if input to the perl program is ' ( p * ((a+b) * (c+d))) + q ' it shuld give the output as ' pac + pad + pbc + pbd + q ' .can anyone suggest a way to do this ?
# 2  
Old 02-17-2009
Perl doesn't support that out-of-the-box, but maybe this can help you: Math::Symbolic - Symbolic calculations - search.cpan.org (First & Third result when searching for "perl symbolic math")
# 3  
Old 02-18-2009
Thanks Pludi for replying...But it didn help.Can anyone suggest a metho may b by pattern matching or something
# 4  
Old 02-18-2009
Quote:
Originally Posted by Anuj8584
Thanks Pludi for replying...But it didn help.Can anyone suggest a metho may b by pattern matching or something
If it were for just that one specific pattern it would be possible, but I suspect the user input can be any number of varying combinations of math expressions, in which case trying to convert them to some other format needs a much more thought out approach.
# 5  
Old 02-18-2009
actually, a lexicographical parser is required. then, some sort of commonizing engine.

i'll build it for a fee. :-)
# 6  
Old 02-18-2009
Quote:
Originally Posted by quirkasaurus
actually, a lexicographical parser is required. then, some sort of commonizing engine.

i'll build it for a fee. :-)
I don't think its "required" if the input can be limited to something reasonable. Not that I would want to try and code such a parser myself even for a limited set of equations.

Of course a lexicographical parser would be a great solution if money and time were no problem. Smilie
# 7  
Old 02-18-2009
As others noted - this has the potential to be hellishly complex.
you could write a simple perl frontend to pari using one of it's interfaces, if you have to use perl. Pari interprets algebraic statements and then can work with them.

Code:
http://clisp.sourceforge.net/impnotes/pari.html


Previous Thread | Next Thread
Test Your Knowledge in Computers #410
Difficulty: Easy
Trusted XENIX was a variant initially developed by HP-UX, under the name Secure XENIX.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Calculate the constant e to 14+ decimal places using integer maths.

Hi guys... I am loving this integer maths thing. 64 bit systems are certainly easier than 32 bit, but hey, I don't intend to leave out my fav' platform. Using one of the 'Brothers' methods, URL inside the code. #!/bin/sh # # #!/usr/local/bin/dash # e_constant.sh # Brother's formula . #... (2 Replies)
Discussion started by: wisecracker
2 Replies

2. Shell Programming and Scripting

Help with insert a value equation in bash script

HI All, I have a script in bash that i want that script will perform action When the size of a particular folder exceeds the 80%. Here is an example of script that result is exactly 80% : #!/bin/bash CHECK=$(df -h /var/log/syslog | grep '80%' | xargs echo | cut -d' ' -f5) if ];... (1 Reply)
Discussion started by: Aviel.shani
1 Replies

3. Shell Programming and Scripting

Maths in shell scripts

Hi, Need help on this. I need to increment a variable by 1 but retain as 2 characters. I am using expr to do additions: NEWSERIAL=`expr $SERIAL + 1` $SERIAL can range from 01-99. After adding "1", I need the result to be 2 characters, eg: 02+1 = 03. By default expr will truncate the... (4 Replies)
Discussion started by: vchee
4 Replies

4. Shell Programming and Scripting

Simple maths calculator loop.

Hi, I am trying to make a maths calculator that: 1. Prompts the user for a number. 2. Prompts the user for an operation (add, subtract, divide or multiply) 3. Prompts the user for a number. 4. Prompts the user for another operation (same as above) OR the option to get the result for the... (4 Replies)
Discussion started by: johnthebaptist
4 Replies

5. Shell Programming and Scripting

Using IF statements with maths where the input is not an integer

Hi All I've made a few scripts which using GDAL extract the value of a pixel within a given raster. The purpose is to work out the combine value of every pixel. I thought there may have been an easier way to do this but alas! The code below extracts the pixel value at position X Y. The... (3 Replies)
Discussion started by: StudentFitz
3 Replies

6. High Performance Computing

Performance Equation

I'm running a MPI program using a cluster of 4 machines(different machines of different processing power,cpu utilization etc.). I'm trying to balance the computation among the machine to get the minimum execution time for that. I tried to balance it by creating a threshold value by taking the load... (1 Reply)
Discussion started by: chamila1986
1 Replies

7. Shell Programming and Scripting

Maths with variables

Hello, I'm trying to write a while loop for a decimal value in tcsh which I know can't be done. Instead I want my increments to be one order of magnitude too large and then divide it by 10 when I use the variable. However, I don't know how to divide my variable and set it as another. set... (1 Reply)
Discussion started by: DFr0st
1 Replies

8. Shell Programming and Scripting

AWK equation evaluation.

Hi, Is there a way to evaluate an equation contained in a string within an AWK script? For example: A = "(5*2)-1" (this equation is read from a file and varies line by line) In this example, I can't see any way to get an answer of 9 unless I do: cmd = "awk 'BEGIN{print "A"}'" cmd |... (3 Replies)
Discussion started by: srdgeo
3 Replies

9. UNIX for Dummies Questions & Answers

equation calculation on Unix

Hay, guys, Any ideas how to calculate like this: in first file, there're number of lines listing 2+3, 6*9 ....... Then, how to get the result and put them in another file in format: 2+3 5 6*9 54 ...... sheerly by shell command, no scripts required. (4 Replies)
Discussion started by: robbinGlasses
4 Replies

10. Shell Programming and Scripting

Problem with Maths

Heres a script i wrote as a bit of practise. What it does is insert a line in the middle of a file. The line being $1 and the file being $2 #!/bin/bash rm tempfile touch tempfile count=1 linenum= `wc -l < $2` if then echo $1 >> $2 else even=`expr "$linenum" % 2` if then... (3 Replies)
Discussion started by: Quesa
3 Replies

Featured Tech Videos