What are you looking for in a geometry module. Please give an example
of a problem you wish to pose.
On 05/23/2014 06:38 PM, Joachim Durchholz wrote:
Am 23.05.2014 23:13, schrieb Stefan Krastanov:
@Joachim, you are right about what you say, but I do not think it
applies to the geometry module.
> [...]
>
- generalize it to N dimensions (which is not what this gsoc project
is doing and it will probably never be done (a completely new module
is more realistic))
- make it work in 3D (what this project is doing and what I discuss
below)
As I half-suspected, what I'm after isn't in the goals, so it's
irrelevant for the project.
Ignore my feedback for the geometry module then :-)
I also agree that a fully general module would likely make it harder
to work with in education, so even restricted 2d and 3d modules do
have a solid purpose.
It *might* be a good idea to rewrite these modules so that they call a
generalized arbitrary-dimension geometry module, but since such a
module does not exist, that's not currently viable and something to
refactor in a future project.
Given that it is only 2d and 3d that we are working on, I think a
minor amount of code duplication[1] is a good thing, as it will make
the code simpler.
[1] at least in the beginning: during code reviews we can see whether
there is something worth abstracting away.
+1
Going back to the current work in progress:
While I do not have a very strong opinion on the above, there is one
thing I insist on. A large amount of `if 2d:... elif 3d:...` snippets
is an obvious antipattern in an OO language. The current works has a
lot of them and it was the reason for which we decided to push the
conversation to the mailing list.
+1
For each such if-elif clause, there should be a function, overridden
with the code from "if 2d:" in the 2d module and with the code from
"if 3d:" from the 3d module.
That's a fairly mechanical transformation. The real fun begins when
you try to give these functions meaningful names - however, that's a
great way to discover which concepts apply across dimensions and which
don't.
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit
https://groups.google.com/d/msgid/sympy/537FD58C.5040603%40verizon.net.
For more options, visit https://groups.google.com/d/optout.