Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 31 2019 03:07
    SethTisue commented #219
  • Jan 30 2019 21:49
    keithschulze starred typelevel/algebra
  • Jan 30 2019 20:19

    larsrh on gh-pages

    updated site (compare)

  • Jan 30 2019 20:11

    larsrh on gh-pages

    updated site (compare)

  • Jan 30 2019 19:56

    larsrh on revert-216-docs

    (compare)

  • Jan 30 2019 19:56

    larsrh on master

    Revert "fix homepage (#216)" T… Merge pull request #220 from ty… (compare)

  • Jan 30 2019 19:56
    larsrh closed #220
  • Jan 30 2019 19:55
    larsrh commented #219
  • Jan 30 2019 19:55
    larsrh closed #219
  • Jan 30 2019 19:55

    larsrh on v1.0.1

    (compare)

  • Jan 30 2019 19:55

    larsrh on master

    Setting version to 1.0.1 Setting version to 1.0.2-SNAPSH… (compare)

  • Jan 30 2019 18:05

    larsrh on gh-pages

    updated site (compare)

  • Jan 30 2019 17:54

    johnynek on master

    build for 2.13.0-M5 (#223) * b… (compare)

  • Jan 30 2019 17:54
    johnynek closed #223
  • Jan 30 2019 16:41
    sungjk starred typelevel/algebra
  • Jan 30 2019 14:28
    erikerlandson commented #223
  • Jan 30 2019 13:58
    tusharbihani starred typelevel/algebra
  • Jan 30 2019 13:39
    larsrh commented #223
  • Jan 30 2019 13:37
    erikerlandson commented #223
  • Jan 30 2019 13:30
    larsrh commented #223
P. Oscar Boykin
@johnynek
+1 to an issue so @non @tixxit and others can weigh in.
Denis Rosset
@denisrosset
We will have the same discussion about the law tests; should cats/algebra/spire have independent modules, or should we have a dependency chain? The matter is much more complex there, with the use of discipline, the dependency on scalacheck and the laws encoding a lot of structure.
P. Oscar Boykin
@johnynek
yeah, we can have that discussion. I all for sharing when we have some commitment and track record of binary compatibility.
Denis Rosset
@denisrosset
Indeed, track record. The Scala ecosystem is pretty young!
P. Oscar Boykin
@johnynek
I think we are actually in a maturing phase at the moment.
Denis Rosset
@denisrosset
Indeed; there is still a conflict between purists and pragmatists (by that, I mean people who ship large FP codebases, not the Scala-as-better-Java).
That makes the situation interesting to balance.
That said, I'm very excited about using Scala for computer algebra. Most CAS nowadays are using dynamic languages; while Scala runs on a performant VM and makes refactoring quite trivial in comparison.
Indeed we are in a maturing phase. I'm happy to contribute to some design corrections (like the GCD and EuclideanRing stuff), so that our building blocks approximate the mathematical structures as closely as possible...
Denis Rosset
@denisrosset
... before it's too late. For example, most languages do not distinguish between Euclidean division and truncated division; then you are stuck with ambiguous syntax.
Ben Hutchison
@benhutchison

I'll create a ticket, capture the discussion from here. A couple of comments:

Is there a problem of duplicating the cats-core syntax code in algebra?

Its code duplication. We'd end up with 2 copies of the same code to solve the same problems. Over time they can diverge, leading to slightly different syntax depending where you imported from.

To me its a fallback option. I'd prefer to try tackle the root problem and migrate the cats-kernel syntax into kernel where it belongs. only if thats intractable then resort to code duplication.

Otherwise we need source and binary compatibility from machinist as well.

Machinist is a bit special though, its macro generators rather than another library. I think its pretty stable, unlikely to be an problem...?

every release of cats breaks binary compatibility.

Are you referring to kernel, or cats core?

Cats-core is pre 1.0. My read of the consensus feeling from the community is that binary compat pre-1.0 is less important than "getting it right". After 1.0 the pace of change will slow - thats the stated plan IIUC..

As a maintainer of big codebases you probably feel the impact more than most. But if you're building atop pre-1.0 software you signed up to that to some degree..?

Denis Rosset
@denisrosset
After 1.0 the pace of change will slow - thats the stated plan IIUC..
For cats-kernel, the pace of change will be glacial: there is a commitment to preserve binary compatibility across minor releases.
I don't know the situation for machinist. It's pretty stable, sure, but what is the commitment and what is the track record of that dependency? Code duplication is a minor problem compared to the diamond problem of dependencies.
Paul Phillips
@paulp
FYI the readme at https://github.com/typelevel/algebra is still suggesting 0.6.0, but 0.7.0 was published in January.
Kai(luo) Wang
@kailuowang
@/all any concerns if we break cats.kernel bin compat in the upcoming 1.0.0 release?
I mean the cats 1.0.0 MF release coming next week or so.
Denis Rosset
@denisrosset
@kailuowang Not a big deal for the spire ecosystem; but try posting on the algebird chatroom to get feedback from the other community
Kai(luo) Wang
@kailuowang
Thanks
Shion
@ShionAt
Please support my attempt to change the world of the project, spread it, baptize it
https://github.com/ShionAt/Keys
https://twitter.com/ShionKeys
Pascal GANAYE
@paganaye
hi is there a mathematician in this plane?
I have a question about beziers surfaces.
The question is: Can I define a bezier surface with only 8 points?
I don't know how to position the center point
jeremyrsmith
@jeremyrsmith
@paganaye not a mathematician, but if you have 4 corner points then you have 4 control points as well. You could take them in groups of 3, find midpoint of hypotenuse, and take the mean of those midpoints to form a control point for the center?
also take a look at Raph Levien’s PhD thesis (creator of Spiro, http://levien.com/phd/phd.html). I haven’t really, but he talks about lots of properties of curves including inference of bezier control points
Luka Jacobowitz
@LukaJCB
So I’m trying to port the Algebra laws to the new cats style laws and I’m a bit confused about how the LatticeProperties work, maybe someone can help me out?
@johnynek ? :D
Denis Rosset
@denisrosset
I can chime in.
@LukaJCB as a start, look at "Lattices as algebraic structures" in https://en.wikipedia.org/wiki/Lattice_(order)
Otherwise, just prepare the PR with stubs for the Lattice stuff, and I'll try to complete.
Thanks for helping! I'd like to move Spire to cats 1.0.0 as well!
Luka Jacobowitz
@LukaJCB
Okay, I guess my actual question is, should the MeetSemilatticeLaws inherit the SemilatticeLaws?
Luka Jacobowitz
@LukaJCB
And analogously the BoundedMeetSemiLatticeLaws from the BoundedSemilatticeLaws
Denis Rosset
@denisrosset
Not exactly
A semilattice is defined as a specialized semigroup, basically it's commutative and idempotent, i.e. x |+| y |+| y = x |+| y and x |+| x |+| y = x |+| y
A meet semilattice is completely equivalent to a semilattice, except that its operation is called "meet".
A join semilattice is completely equivalent to a semilattice, except that its operation is called "join".
A lattice is both a meet and join semilattice (that's why we define join and meet semilattices)
Think of it the same way as a ring: it has both an additive and multiplicative monoid inside, but they are not the same, so Ring[A] does not directly inherit from Monoid[A], but rather AdditiveMonoid[A] (or actually AdditiveGroup[A]), and MultiplicativeMonoid[A]
(the additive monoid in a ring is always commutative, and the multiplicative monoid can be commutative if it is a commutative ring; a field is actually a multiplicative group over nonzero elements, but you get the spirit)
So I suggest, for the tests, to write them in the same way for the semilattice stuff and the ring stuff
Luka Jacobowitz
@LukaJCB
Okay I might create a PR with the Lattice stuff, and then when we find the solution I can apply it to ring as well :+1:
Pascal GANAYE
@paganaye
merci @jeremyrsmith
Denis Rosset
@denisrosset
@LukaJCB Do you mind sharing your WIP? I will need to interface cats and spire in the same project, so I'd like to move in with the update!
Luka Jacobowitz
@LukaJCB
Yes sure, It’s not close to done yet though, unfortunately
Luka Jacobowitz
@LukaJCB
#206
Denis Rosset
@denisrosset
Cool, thanks!
Luka Jacobowitz
@LukaJCB
I’ll probably have some time to work on it on wednesday or thursday :+1:
Denis Rosset
@denisrosset
@LukaJCB I started as well to port the Spire tests to the new cats style, see https://github.com/non/spire/tree/experimental