Gary, On Tue, Oct 23, 2018 at 10:49 AM <gary.willoug...@victoriaplumb.com> wrote:
> In that example, how would you call the `New` function? > like this: - https://github.com/sbinet/go2-test/blob/master/ndarray/nd_test.go func TestArray1D(t *testing.T) { shape := []int{10} arr0 := ndarray.New(float64)(shape, []float64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}) arr1 := ndarray.New(shape, []float64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}) } func TestArray2D(t *testing.T) { shape := []int{2, 5} arr0 := ndarray.New(float64)(shape, []float64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}) arr1 := ndarray.New(shape, []float64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}) } hth, -s > On Monday, 22 October 2018 10:10:51 UTC+1, Sebastien Binet wrote: >> >> Hi Volker, >> >> On Mon, Oct 22, 2018 at 10:57 AM Volker Dobler <dr.volke...@gmail.com> >> wrote: >> >>> The Go 2 draft generics draft has been discussed a lot, >>> especially contracts have drawn a lot of attention and >>> other ways to limit the set of possible type were suggested. >>> >>> Most discussions orbited around very basic polymorphic >>> functions like polymorphic Min or a Map functions. I do consider >>> a polymorphic Min function to be nothing more than a >>> litmus test to generics: If a generic/polymorphic Min cannot >>> be written the proposal is insufficient. But I probably would >>> never write a polymorphic Min as a type specific Min is >>> 3 lines and basically impossible to get wrong and just because >>> Min looks nice under a proposal does not mean that the >>> proposed solution will lead to good code where generic or >>> polymorphic code would actually be beneficial: For complicated >>> data structures and algorithms. >>> >>> At least the original proposal mentions a generic Graph >>> data structure. Still without showing how e.g. DFS, BFS, >>> Shortest Paths would be a) implemented and b) used. >>> >>> I think it would be good if we could see how different proposals >>> (and especially the official one) would affect how generic code >>> is written and used. Especially code which is hard to get right >>> and really benefits from a "generic" implementation. >>> >>> I'd like to see generic/polymorphic: >>> - Image manipulation (scaling, convolution, etc.) for various color >>> models >>> - Balanced trees (AVL or Red-Black) >>> - Matrices of bool, int, float32/64, complex with inversion, >>> LR-decomposition, eigenvalues >>> - Fast Fourier Transformation (with ints, float32/64, complex64/128 and >>> my float24 inputs) >>> - Graph algorithms (DFS, BFS, Dijkstra, Bellman-Ford, Floyd-Warshall) >>> (feel free to add stuff from your field here). >>> >>> How would a package graph with a generic Graph data structure >>> and accompanying algorithms look like? How would I use such >>> a generic algorithm with nodes of my own type? >>> >>> How would I be using a generic 2d FFT package when my inputs >>> is complex128 and how if inputs are float32? >>> >>> I think that answers to these questions would be much more >>> helpful in evaluating generics than the current focus on the >>> syntax of Min and whether contracts can be done trough interfaces. >>> >>> Let's start with Dijkstra and the Graph example of the >>> original proposal: How would the implementation look like >>> and how would my code use this implementation? >>> >> >> I agree. >> I had started something like this, there: >> - https://github.com/sbinet/go2-test/blob/master/ndarray/nd.go >> (my pet peeve is inter-operability with Python's protocol buffers and >> NumPy n-dim arrays in particular) >> >> it would be great to have a code generator that takes e.g. Go-generics >> draft-proposal code, and generates Go-1 compatible code (or, at the very >> least a gofmt command that can make sure the code parses ok.) >> >> -s >> > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.