some general thoughts concerning the kde-edu world
Alexander.Semke at web.de
Thu Mar 13 19:11:22 UTC 2014
Percy and me started a discussion that I think could be of interest for other
people here. We decided to move the discussion to kde-edu so that everybody
can participate in it. I full-quote Percy's reply here and I'm going to answer
soon. But before that I'll get a closer look at analitza :-)
On Thu, Mar 13, 2014 at 4:56 AM, Alexander Semke
<alexander.semke at web.de>wrote:
> Hi Percy,
> thank you for you email.
> To be honest, I don't completely understand the intention of analitza yet.
> What is the final goal of this project?
To be a lightweight math library for KDE-Edu applications, that include:
parsing expressions but also do some more elaborated math features
(features that are not directly in libraries like GSL or GiNaC: like
> To create yet another computer algebra system?
That is not the goal of Analitza, to be a very lightweight CAS is the goal
of KAlgebra (as far I understand), please remember that Analitza is a
library, this is important distinction from a regular CAS.
Surely you know, as I, that many CAS are great and better to do the kind of
tasks that Analitza does, but those CAS doesn't have a library (interface)
where other applications can use just part (not all) of their features. And
if some CAS have this library (interface), then (for a simple math
application) it would be to much to include all the CAS features into that
tinny application Khipu, KAlgebra, KmPlot, Kig or even LabPlot2.
> The proposals you made for GSoC2014 go partially in this direction.
It seems that, but my goal here is to improve a lot a evaluation speed of
math expressions, this is something I know we will need later :)
> Who is the supposed end-user for this library?
Tinny math applications, especially from KDE world.
> Somebody who works now with Mathematica, Maple etc.
No, those are CAS, not libraries, those are directed for teachers,
students, scientists, or math/science fans :)
We don't plan to conquer the world with Analitza, just to supply features
for our applications.
> Do you really want
> to compete with this projects?
> If not, who should use analitza? KAlgebra? Who is intended to use this
Yes, programs like KAlgebra, programs that need to be tinny and for
specific educational purposes.
For example, as a use case: I guess that, since I live in Peru, then I
understand this better: here many children and students that have the
fortune to access a computer (specially in national schools) are doing
their tasks not with high-end (not even average-end) hardware, yes this
schools get their computers from many sources (e.g. via donations)
Installing a entire CAS there can be too much (from a computational demand
> No proffesional user (or even students) will ever touch this, believe me.
I believe you, and I know it, however I hope this effort can be used by
other applications and those can arrive to basic schools and then -with
luck and strategy- reach more advance users: For example, next to this
proposal, we could implement a simple wrapper that can run a subset of
MATLAB or Maxima commands (just commands), then those users could use
KAlgebra to do some other tasks (e.g. interactive plotting) ... but all of
this is step by step ;)
> Pupils in the schools?
Yes, specially those students who want simple programs to learn or
visualize (quickly) math results in an interactive fashion.
> Better invest the time
> and effort to provide an easy to use and modern looking frontend for
> Maxima and write introductional texts for this
> user group describing school related problems.
This is the goal of Cantor.
> I think, Cantor can become such a frontend
True, currently its really awesome, I use it frequently along with Sage.
> and I'd like to contribute
> later to this project
Me too, that would be an application of Analitza: to serve as a basic
infrastructure for a plugin to support interactive plotting (CAS only
export results as images)
> and to popularize Maxima+Cantor by writing down some nice examples for
> solving some standard physical
We are in the same boat, I'm want that with Sage too.
> I'm physicist, a theoritician :-)
Glad to know that, we need more people with your background in
KDE-Edu/Science (well science is education at the end ;))
> I believe, this is a better investment if you want to push the usage of the
> open-source software in schools and scientific areas.
That is the idea, to have a good library to support the students/teachers
and I think plotting is key in the learning process, but good and
> Or do you only want to provide an expression parser for other projects
> like khipu?
Yes, but also too for KAlgebra, Khipu, Cantor plugins (eventually), etc.
> In labplot we use a bison generated
> parser and this is sufficient for such a plotting software. Have a look at
> the current code of labplot, we implemented
> plotting of curves defined by mathematical expressions recently. Create a
> new project, worksheet and then an "xy-equation curve"
> for this. This was very easy to implement once a parser is available. The
> generation of the parser is trivial (just call bison),
> once the grammar is defined. And I don't expect this part of the code to
> contain any errors since bison is a very old and well
> tested technique.
True, plotting xy is a good basic feature, however that is too trivial to
implement, I can done that even with out bison.
> In the grammar we use all the functions and constans available in GSL.
> Later, for the analysis part
> (like fitting, filtering etc.) we'll also use GSL with simple and thin
> c++-wrappers over this c-library. Currently, I don't see
> any additional need for an external library.
I explored the idea to add GSL to Analitza around 2010, but that time the
only thing I needed was some root finding methods, so at the end we (Aleix
and me) didn't see the benefits to use it, also that library doesn't have
interval arithmetic support. If in the feature we are in need of more
advance features, I'm with you here: we will not reinvent the wheel and we
will consider to use libraries like GSL or even Boost.
> At the moment, we cannot plot functions defined by an implicit equation. I
> to think more about this topic.
This, this, this and this ;)
We currently plot that kind of tricky objects, and that is why is very
important to improve a lot a evaluation of math expression, believe me, I'm
in the business of implicit plotting since I study the implicit function
theorem :D Just plotting algebraic curves is difficult, I mean certificated
ones, i.e. plots that have all the curve information (specially singular
points) I hope we can get to that kind of quality in the future :)
Also, Analitza can plot even implicit surfaces and later will plot results
of differential equations (way more advance features what we have in KmPlot
All plots are interactive, every mouse/keyboard event demand a rapid
re-calculation, if we use a CAS then we will have a latency by the fact
that we will need to move image buffers from CAS into QPainter.
> For me, analitza looks like something that is already available in GiNaC.
GiNaC use their own semantics, Analitza use the semantic described in the
MathML, both are similar: true, however I think Analitza is more rich from
a language perspective.
> Do you now GiNaC?
> So, don't get me wrong. I don't want you to stop working on this code.
Please don't worry ;) I'll keep working on this.
> But I just don't understand the final goal of this
> project and I think that, if you want to go into the direction of a CAS,
> you're trying to impelement something that takes
> a lot of time (years) and that is already available in the open-source
I hope you understand better the idea about Analitza now and how that
library is a key player for KDE-Edu math applications.
> If you want, we want to move this diskussion to kde-edu. I already wanted
> to understand the purpose of analitza in january but
> didn't have enough time to discuss it then. Feel free to start a new
> discussion an to copy my text from this email.
> If you want, I can also make this.
Yes please, I believe this should be open. Also, it was my bad to assume
you have a better idea about Analitza. Feel free to forward this to the
list any time you want. And if you have more questions/doubts or I didn't
achieve to explain something then attach your questions too; I'm sure we
will have feedback from those who are interested on this topic.
More information about the kde-edu