descriptionA library for manipulating cluster algebras as quivers in myrddin
ownersgilles@math.umd.edu
last changeWed, 10 Mar 2021 03:01:05 +0000 (9 22:01 -0500)
content tags
add:
README
This is libquiver: a library for making and working with quivers in
myrddin. You may care about it if you want to work with cluster
algebras, doing things that Clav [0] does, but as a library.

You need

 - myrddin  [ https://myrlang.org ]
 - libt     [ https://repo.or.cz/some-myr-traits.git ]
 - libyakmo [ https://repo.or.cz/libyakmo.git ]

Example program, demonstrating specific Plücker relations:

        use std
        
        use t
        use quiver
        use yakmo
        
        const main = {
                var q = quiver.mk_with_opts([.use_a_coords = true])
                quiver.add_vertex(q, "a", 1)
                quiver.add_vertex(q, "b", 1)
                quiver.add_vertex(q, "x", 1)
                quiver.add_vertex(q, "c", 1)
                quiver.add_vertex(q, "d", 1)
        
                quiver.add_to_edge(q, "a", "x", yakmo.QfromZ(1))
                quiver.add_to_edge(q, "x", "b", yakmo.QfromZ(1))
                quiver.add_to_edge(q, "b", "a", yakmo.QfromZ(1))
                quiver.add_to_edge(q, "d", "x", yakmo.QfromZ(1))
                quiver.add_to_edge(q, "x", "c", yakmo.QfromZ(1))
                quiver.add_to_edge(q, "c", "d", yakmo.QfromZ(1))
        
                for var j = 0; j < q.v.len; ++j
                    q.v[j].acoord = yakmo.polynomialfromQ(auto std.try(yakmo.Qfrom(1, j*j + 1)))
                ;;
        
                var q2 = t.dup(q)
        
                match quiver.mutate_ip(q2, "x")
                | `std.Ok void:
                | `std.Err e: std.fatal("mutate(q2, x, true): {}\n", e)
                ;;
        
                for var j = 0; j < q.v.len; ++j
                        std.put("{}    {}    {}\n", q.v[j].name, q.v[j].acoord, q2.v[j].acoord);
                ;;
        }

[0] https://repo.or.cz/clav.git
shortlog
2021-03-10 S. Gilleshandle x-coordinates bettermaster
2021-01-26 S. Gillesallow trailing empty lines, since my generators keep...
2020-06-29 S. Gilleshandle X-coords, optionally
2020-02-06 S. Gillesupdate README program, since it is possible now
2020-01-27 S. Gillesadd graph equivalence (no isomorphism allowed)
2020-01-23 S. Gillesimplement delete_vertex
2019-10-26 S. Gilleslibyakmo uses polynomials, not laurents
2019-10-24 S. Gillesupdate tests to use Laurent polynomials for A-coords
2019-10-24 S. Gillesuse Laurent polynomials for A-coords
2019-10-22 S. Gillesadd demon B3/C3 test case for non-involutive mutations
2019-10-22 S. Gillesgive up, allow mutating quivers directly by index
2019-10-15 S. Gillesnicer error messages
2019-10-15 S. Gillesimplement mutateseq
2019-10-14 S. Gillesunmask impl t.dupable quiver#
2019-10-11 S. Gillesconvert from flt64 to yakmo.Qi
2019-10-02 S. Gillesadd find_vertex, because I keep re-implementing it
...
heads
3 years ago master