I somehow suspect there is a fundamental difference between us here in
what we are trying to achieve. What I want is not just a set of
algorithms but also something that is useful for human users to learn
and experiment with this mathematics.
I don't just mean coordinates for representing in a plane but also
designations/names for vertices and arrows and so on. Regarding the
graphics, I think that people differ on this a lot, some people tend
to think visually and some don't, I personally would not want to work
on graphs without being able to see them.
Martin, yes, you might have different views from anyone else, I think
what Waldek is trying to say is "think minimal". And, in fact, SPAD
allows for such a design. A graph is just nodes + edges. I could imagine
a design where one would build the graph on top of two types N and E
which represent a node and an edge, respectively. Depending on what
these types are
Graph(N, E)
would then either be a labelled/unlabelled graph with labelled/unlablled
and weighted/unweighted and directed/undirected edges.
The exports of Graph depend on the exports of N and E. If the graph is
directed, one would export other algorithms than for undirected graphs.
If you want positioning information, you can have that, simply export it
from N and in the Graph code deal with it. But for a "drawable graph", I
would probably rather create DrawableGraph(N, E) which inherits from
Graph(N, E), but expects N to contain (x,y) coordinates.
Martin, I appreciate very much that you experiment with graph code and
invest time to climb to steep ladder of becoming a SPAD expert. We
should have many more people of your kind.
Still, what goes into a FriCAS release should actually be thought of
quite a bit. If the code is in, it has to be maintained and one cannot
easily change the interface without making some people unhappy that rely
on the original interface. Well, for the moment, that's probably not a
big issue, but in the long run, we (as main developers) must think about
a good infrastructure that allow anyone to develop his/her code on a
branch and have others to review the code until it becomes stable enough
to be included into a fricas release.
I'd very much like if we were using git as the main underlying VCS, but
since there is github and git-svn, we can already have such an
infrastructure now. Each person who proposes to include something into
fricas should have a branch that one could fetch and simply say
"configure && make && make install" to be able to see the effects of the
new code.
Ralf
--
You received this message because you are subscribed to the Google Groups "FriCAS -
computer algebra system" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/fricas-devel?hl=en.