by

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 21:02
    LukaJCB commented #758
  • Jan 31 2019 20:29

    tixxit on master

    Fix Polynomial Gen Merge pull request #758 from Lu… (compare)

  • Jan 31 2019 20:29
    tixxit closed #758
  • Jan 31 2019 18:55
    LukaJCB commented #758
  • Jan 31 2019 12:07
    lmazzon starred non/spire
  • Jan 31 2019 03:06
    SethTisue commented #742
  • Jan 30 2019 23:41
    niebloomj starred non/spire
  • Jan 30 2019 21:11
    GusevTimofey starred non/spire
  • Jan 30 2019 15:12
    qsctr starred non/spire
  • Jan 30 2019 14:00
    tusharbihani starred non/spire
  • Jan 28 2019 15:07
    roman0x58 starred non/spire
  • Jan 25 2019 14:56
    invkrh starred non/spire
  • Jan 23 2019 18:00
  • Jan 23 2019 12:20
    cwheikki starred non/spire
  • Jan 23 2019 02:18
  • Jan 22 2019 15:44
    paulhirschi starred non/spire
  • Jan 22 2019 09:46
    shreyanshp starred non/spire
  • Jan 20 2019 12:39
    midnio starred non/spire
  • Jan 20 2019 12:37
    midnio starred non/spire
  • Jan 20 2019 12:34
    midnio starred non/spire
Jakub Kozłowski
@kubukoz
I'll take a look
Luka Jacobowitz
@LukaJCB
What’s the best way to get a serializable reprsentation of polynomials? I was thinking a list of terms, but that seems to be giving me some weird index out of boundexceptions
Luciano
@lJoublanc
Are you just using java serialization? You'll need both the coefficients and exponents (or alternatively 0 terms for exponents that you skip).
Luka Jacobowitz
@LukaJCB
I'm trying to write a circe codec
I turn it into a list of terms and serialize that
And then I decode in the same way
Luciano
@lJoublanc
I was actually thinking about this the other day ... you know scala 2.13 has support for opaque types, that I believe allows creating new types that are unboxed arrays essentially.
If there was an implementation using this as the data type (currently I don't think spire's polynomial is implemente like this), then that would be really efficient to serialize. It would just be an array with each element being the coefficient (with zeros for those powers that are missing).
So essentially no need to serialize at all, as the scala representation could match the binary representation.
It would also allow really efficient vectorized computation.
Luka Jacobowitz
@LukaJCB
Any idea why using PolySparse.apply would give me an index out of bounds exception? 🤔
Luka Jacobowitz
@LukaJCB
I’ve minimized the problem
apparently the Eq instance throws exceptions when comparing
Luka Jacobowitz
@LukaJCB
Luka Jacobowitz
@LukaJCB
On another note, is there really no way to get an Algebraic back from an Expression?
Denis Rosset
@denisrosset
No idea on that, I don't know that part of Spire so well. Ask @tixxit maybe?
Luka Jacobowitz
@LukaJCB
I actually got it fixed, thanks :)
Ichoran
@Ichoran
Slightly off topic, but this is the right kind of crowd for this type of stuff: if any of you have ideas about how to get less fraught behavior out of BigDecimal I'd like to hear about it on scala/bug#11152
Mark Tomko
@mtomko
Perhaps we're doing it wrong, but we just ran into an issue building an assembly jar for a project that has spire in its transitive dependencies - it seems that the subprojects of spire each get built with a buildinfo.BuildInfo$ object, from the sbt-buildinfo plugin. On assembly, these are causing a conflict. I can configure the assembly to discard them but that's a little bit scary. Would it be okay if I made a PR that tried to do one of the following:
  1. put a buildinfo class in a module all to itself that the other modules depend on
  1. put the buildinfo objects for each subproject in their own packages
sorry, my enumeration failed there
Jakub Kozłowski
@kubukoz
looks like it wasn't a good idea to put buildinfo into the suggested package
I'd just use a different package
Mark Tomko
@mtomko
that makes the most sense to me
I can take a quick look at it later today and make a PR for it.
Jakub Kozłowski
@kubukoz
it'd be lovely if all BuildInfo stuff was inlined at compile time though...
maybe there's a way to do that in sbt-buildinfo and fix everything in one go
changing all vals in it to macros would be a start
Mark Tomko
@mtomko
I'm not sure I'm following you.
I think the BuildInfo class is generated at compile time, it should be an object full of vals
Jakub Kozłowski
@kubukoz
it is
but maybe a better solution than having a class generated at compile time would be inlining the vals from that into the code that uses them
Mark Tomko
@mtomko
oh, I see.
Jakub Kozłowski
@kubukoz
e.g. if you have version in your buildinfo object, maybe all usages of BuildInfo.version could just be inlined to 0.0.1 or whatever that is
Mark Tomko
@mtomko
That's above my pay grade :)
But I agree that it's appealing
Denis Rosset
@denisrosset
@kubukoz I have no idea about this BuildInfo stuff -- any doc I can read?
Jakub Kozłowski
@kubukoz
all I know
so it basically generates an object with some vals... I think it might be possible to replace them with macros (and eliminate the BuildInfo object from runtime)
actually, why does spire have BuildInfo in the jar?
I used it in https://github.com/kubukoz/sup but only in the microsite
sounds to me like it wouldn't be very useful to the users of the library anyway
Mark Tomko
@mtomko
I don't like to think I'm a representative sample of spire users in any way, but I can't think of a reason I'd want that information programmatically.
For us it's been handy for deployed applications, but not for libraries
Jakub Kozłowski
@kubukoz
exactly
Mark Tomko
@mtomko
And there are other ways of dealing with debugging version conflicts or classpath problems - sbt can usually show that kind of thing, especially with the dependency graph plugin
ag --scala BuildInfo doesn't return any results in a clean checkout of the spire code
Mark Tomko
@mtomko
hmm, I'm not sure that's a good test based on how the build works, so we should discount that evidence
 ✘  /opt/mtomko/spire   master  ag -a --scala BuildInfo
platform/js/target/streams/compile/buildInfo/$global/streams/sbt-buildinfo/BuildInfo.scala
6:case object BuildInfo {

platform/js/target/scala-2.12/src_managed/main/sbt-buildinfo/BuildInfo.scala
6:case object BuildInfo {

platform/jvm/target/streams/compile/buildInfo/$global/streams/sbt-buildinfo/BuildInfo.scala
6:case object BuildInfo {

platform/jvm/target/scala-2.12/src_managed/main/sbt-buildinfo/BuildInfo.scala
6:case object BuildInfo {
 /opt/mtomko/spire   master 
I think that's better, I missed the -a