Coder Social home page Coder Social logo

grzegorzmazur / yacas Goto Github PK

View Code? Open in Web Editor NEW
121.0 121.0 23.0 61.55 MB

Computer calculations made easy

Home Page: http://www.yacas.org

License: GNU Lesser General Public License v2.1

CMake 0.55% C++ 8.21% Java 4.16% C 0.31% Shell 0.06% Makefile 0.06% Python 0.04% Batchfile 0.03% TeX 1.11% NSIS 0.05% JavaScript 84.98% CSS 0.08% HTML 0.30% Roff 0.06%
cas computer-algebra-system symbolic-computation

yacas's People

Contributors

a17r avatar aaronb3110 avatar boardgamestudent avatar doronbehar avatar fvacek avatar grondilu avatar grzegorzmazur avatar isomorph70 avatar jitseniesen avatar leto avatar martanoga avatar mikepinna avatar mikldk avatar nnemec avatar ogretransporter avatar qwert2003 avatar soegaard avatar winitzki avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yacas's Issues

Protect(item) makes Simplify() fail [sf#39]

Reported by grzegorzmazur on 2014-11-30 12:03 UTC
In> item
Out> item
In> Simplify(x+x)
Out> 2*x
In> item
Out> item
In> Protect(item)
Out> True
In> Simplify(x+x)
Symbol item is protected
CommandLine(1) : Attempt to override a protected symbol
Out> False

Limit(n,Infinity) n/2^n [sf#4]

Reported by jleto on 2011-11-20 11:56 UTC
This never terminates.

It is probably the same problem as:

In> Limit(n, Infinity) n5/2n
Out> Infinity/(Infinity*Ln(2));

From Ayal:

L'Hopital's theorem is not always the correct thing to
do... but it's not easy to decide the growth of exp-log
and powers.
There is a paper by Richardson, Salvy et al "Asymptotic
expansions of exp-log functions" that may be helpful.


Moved from SF: 559942

autodetect OpenMath [sf#23]

Reported by ggrothendieck on 2011-11-20 13:38 UTC
Allow server to automatically detect OpenMath
input so one can interchangeably send yacas
or OpenMath to server. Since first line of OpenMath
input is always the same this should be possible.


Moved from SF: 1292772

Gcd bugs [sf#3]

Reported by jleto on 2011-11-20 11:53 UTC
In> Gcd(10,3.3)
Out> 3.3; //should error with floats

In> Gcd(10,Pi)
Out> Pi; //and irrational consts

In> Gcd(Exp(1),Exp(2))
Out> Exp(2); // and functions that don't return int's

In> Gcd(-10,0)
// according to "Number Theory", Andrews (1971)
// Gcd(a,0) = Abs(a)
Out> -10; //should be 10

In> Gcd(0,-10)
Out> -10; //same as previous, since Gcd(a,b) = Gcd(b,a)


Moved from SF: 559695

Eigenvalues() with complex entries bug [sf#8]

Reported by jleto on 2011-11-20 12:12 UTC
In> A:={{1,2,3,4},{0,1,2,3},{0,0,1,2},{I,0,I,I}};
Out> {{1,2,3,4},{0,1,2,3},{0,0,1,2}, Complex(0,1),0,Complex(0,1),Complex(0,1)}};
In> EigenValues(A)
C pressed
CommandLine(1) : User interrupted calculation


Moved from SF: 562278

PrettyPrinter("RForm") [sf#18]

Reported by ggrothendieck on 2011-11-20 13:04 UTC
Support a PrettyPrinter("RForm") command for R output.


Moved from SF: 1292782

Various Limit bugs [sf#1]

Reported by jleto on 2011-11-20 11:47 UTC
In> Limit(x,Infinity) xn/Ln(x)
Out> n*Infinity

In> Limit(x,0,Right) x( Ln(a)/(1+Ln(x)) )
Out> 1

In> Limit(x,0) (x+1)(Ln(a)/x)
Out> a


Moved from SF: 559691

Acessing 'help' under YACAS - Windows [sf#25]

Reported by anonymous on 2011-11-20 13:42 UTC
I'd like to make a suggestion about the Windows port of
YACAS.

It should not be necessary to install "lynx" to browse
help from inside the program. Setting 'Browser' to "start"
and removing "file://" from the help string would do the
job using the currently registered '.html' viewer.

This could also be done through ".yacasrc", but, since
HOME is not set by default in Windows, it would be
better if YACAS was to search for this file
in 'DefaultDirectory()'.


Moved from SF: 816811

Limit(x,0)D(x,2)Sin(x)/x; [sf#2]

Reported by jleto on 2011-11-20 11:49 UTC
This expression never terminates, which in turn causes Taylor(x,0,5)Sin(x)/x to never terminate.


Moved from SF: 559663

D(z) Conjugate(z) [sf#6]

Reported by jleto on 2011-11-20 12:03 UTC
In> D(z) Conjugate(z)
Out> 1

This should return Undefined if considered a function of a complex variable.


Moved from SF: 559959

PrettyPrinter("RForm") [sf#18]

Reported by ggrothendieck on 2011-11-20 13:04 UTC
Support a PrettyPrinter("RForm") command for R output.


Moved from SF: 1292782

Integrate(x) Infinity [sf#10]

Reported by jleto on 2011-11-20 12:22 UTC
In> Integrate(x) Infinity
Out> Infinity*x

I can't seem to fixed this with

IntFunc(x,Infinity,Infinity);


Moved from SF: 575539

single user server mode [sf#24]

Reported by ggrothendieck on 2011-11-20 13:40 UTC
Have a single user server mode which shuts down
yacas in response to a quit.


Moved from SF: 1292770

Sign(x)^2 simplifies to 1 [sf#15]

Reported by jlherren on 2011-11-20 12:55 UTC
In> Sign(0)
Out> 0
In> Sign(x)2
Out> 1

Obviously the second simplification is wrong, since x could be zero. Using yacas 1.2.2.


Comment by hmatuschek:

I think the problem is in stubs.rep/code.ys. Here is a patch that worked
for me.

*** code.ys 2009-10-24 19:35:09.000000000 +0200
--- code.ys 2009-10-24 19:36:04.000000000 +0200


*** 256,262 ****
15 # Sign(n_IsNumber/m_IsNumber) <-- Sign(n)*Sign(m);
20 # Sign(n_IsList) <-- MapSingle("Sign",n);

! 100 # Sign(_a)n_IsEven <-- 1;
100 # Sign(_a)n_IsOdd <-- Sign(a);

5 # Floor(Infinity) <-- Infinity;
--- 256,262 ----
15 # Sign(n_IsNumber/m_IsNumber) <-- Sign(n)*Sign(m);
20 # Sign(n_IsList) <-- MapSingle("Sign",n);

! 100 # Sign(a_IsNonZero)n_IsEven <-- 1;
100 # Sign(_a)n_IsOdd <-- Sign(a);

5 # Floor(Infinity) <-- Infinity;


Moved from SF: 2033189

PrettyForm() does not work [sf#41]

get rid of interning file names [sf#42]

Reported by grzegorzmazur on 2014-12-12 16:20 UTC
interning should be used for symbols only, there's no point in making interface to the rest of the system harder to use

Abs(Pi) is not simplified [sf#49]

Reported by grzegorzmazur on 2015-01-17 08:47 UTC
Abs(Pi) should automatically transform to Pi; actually Abs() should be automatically simplified for all constants

Eigenvalues() with nonsquare lists [sf#9]

Reported by jleto on 2011-11-20 12:16 UTC
In> A:={{1,2,3,4},{0,1,2,3},{0,0,1,2},{I,0,I}}; // Not square
Out> {{1,2,3,4},{0,1,2,3},{0,0,1,2},{Complex(0,1),0,Complex(0,1)}};
In> EigenValues(A)
CommandLine(1) : Invalid argument // Better error message?


Moved from SF: 562279

Factor(0) = 1 !?! [sf#14]

Reported by anonymous on 2011-11-20 12:52 UTC
Factor(0) returns 1

but ... shouldn't it still be zero?


Moved from SF: 1699278

Simplify(2^(x-1+1)) [sf#11]

Reported by anonymous on 2011-11-20 12:38 UTC
Simplify(2(x-1+1))


Comment by hmatuschek:

Seems to be fixed by additional rule:

10 # Simplify((_x)(_y)) <-- Simplify(x)Simplify(y);

But I don't know if this may produce side effects. I don't understand the
simplify algorithm but it seems like the power operator is not well covered
there.


Moved from SF: 1075434

stdin/stdout "server" mode [sf#20]

Reported by ggrothendieck on 2011-11-20 13:08 UTC
Allow yacas to start up in a mode where it acts just like server mode but takes its input from stdin and writes its output to stdout.


Comments by matmota:

Logged In: YES
user_id=78635

I've realized that there would be one important feature
missing: the separators that the Yacas server puts around
the output, namely, a line with a single "]", after each
part (input or output).
This can be done with a custom read-eval-print function.
A way to begin would be to copy the REP function (rule) in
"scripts/yacasinit.ys", renaming it to something else. Let's
say "StdioREP".
Then, you would use it with the option "--read-eval-print
'StdioREP();'". Don't forget the parentheses there.
At this point, you can modify the "Write()" calls in there
to format the output as you want.

(Posted only once this time!)

Logged In: YES
user_id=78635

In principle, the way to do that is:
yacas -pc --read-eval-print ""

One problem you can find is that, on EOF (use Ctlr+D for
testing), Yacas goes into some kind of infinite loop. This
could be related to bug #1292788:
https://sourceforge.net/tracker/index.php?func=detail&aid=1292788&group_id=2528


Moved from SF: 1292779

pop the history [sf#22]

Reported by ggrothendieck on 2011-11-20 13:36 UTC
Ability to pop the last N commands off the history
in server mode so that one can do behind-the-scenes
commands without messing up %.

For example, one might want to query and set the
prettyprinter.


Comment by matmota:

Logged In: YES
user_id=78635

You can accomplish that by putting the actions in a list,
between square brackets "[]".
For example:

In> [x:=2+3; Sin(0.5); 3-4;]
Out> -1
In> %
Out> -1
In>

As you see, the value of the composite expression you put
into brackets is the value of the last item. That's exactly
what I did a couple of years ago when communicating with
Yacas via pipes, before I wrote the OMREP() function, so
that I got as response the value of evaluating some
expression, and not the previous steps such as setting the
pretty-printer to OMForm, as you want to do.


Moved from SF: 1292775

Yacas 1.0.52 with VC++ not compiling [sf#7]

Reported by jleto on 2011-11-20 12:05 UTC
Reported by: KHartlage@‌ (Klaus Hartlage)

I downloaded the new release and tested the Visual C++
project file.
In win32commandline.h I changed the

include &quot;commandline.h&quot;

to

include &quot;....\commandline.h&quot;

and I could build yacas.exe ! :-)

After running yacas.exe from command line (above the
\scripts
directory)
I get the following errors:
&quot; Error, could not open archive file scripts.dat
Error on line 1 in file [yacasinit.ys]
File not found &quot;

After copying yacas.exe into the \scripts directory and
running yacas.exe I get the following errors:
&quot; Error, could not open archive file scripts.dat
Error on line 1 in file [packages.ys]
File not found &quot;

What am I doing wrong ?


Moved from SF: 560034

Non-Square JacobianMatrix [sf#13]

Reported by anonymous on 2011-11-20 12:49 UTC
Hi,

(Thanks for your good software first ;))

Why does the function JacobianMatrix need a vector with a size equal to the size of the vector of variables? Never heard that a jacobian need to be square?!

Thanks


Moved from SF: 1471664

setting i makes CDF fail [sf#40]

Reported by grzegorzmazur on 2014-11-30 12:15 UTC
In> N(CDF(PoissonDistribution(5), 2))
Out> 0.4042768199e-1
In> i := 0
Out> 0
In> N(CDF(PoissonDistribution(5), 2))
CommandLine(1) : "In function "MacroSet" :
bad argument number 1 (counting from 1)
The offending argument sumvar evaluated to 0
CommandLine(1) : Invalid argument
"
Out> False

detecting form of output [sf#21]

Reported by ggrothendieck on 2011-11-20 13:11 UTC
It would be nice to have some way of reliably knowing what the form (OMForm, PrettyForm, default form, etc.) of output was received. Some metadata describing this or comments would be nice in each transmission from the server.


Moved from SF: 1292777

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.