GithubHelp home page GithubHelp logo

floats's Introduction

Gonum

Build status Build status codecov.io go.dev reference GoDoc Go Report Card stability-unstable

Installation

The core packages of the Gonum suite are written in pure Go with some assembly. Installation is done using go get.

go get -u gonum.org/v1/gonum/...

Supported Go versions

Gonum supports and tests using the gc compiler on the two most recent Go releases on Linux (386, amd64 and arm64), macOS and Windows (both on amd64).

Note that floating point behavior may differ between compiler versions and between architectures due to differences in floating point operation implementations.

Release schedule

The Gonum modules are released on a six-month release schedule, aligned with the Go releases. i.e.: when Go-1.x is released, Gonum-v0.n.0 is released around the same time. Six months after, Go-1.x+1 is released, and Gonum-v0.n+1.0 as well.

The release schedule, based on the current Go release schedule is thus:

  • Gonum-v0.n.0: February
  • Gonum-v0.n+1.0: August

Build tags

The Gonum packages use a variety of build tags to set non-standard build conditions. Building Gonum applications will work without knowing how to use these tags, but they can be used during testing and to control the use of assembly and CGO code.

The current list of non-internal tags is as follows:

  • safe — do not use assembly or unsafe
  • bounds — use bounds checks even in internal calls
  • noasm — do not use assembly implementations
  • tomita — use Tomita, Tanaka, Takahashi pivot choice for maximimal clique calculation, otherwise use random pivot (only in topo package)

Issues TODOs

If you find any bugs, feel free to file an issue on the github issue tracker. Discussions on API changes, added features, code review, or similar requests are preferred on the gonum-dev Google Group.

https://groups.google.com/forum/#!forum/gonum-dev

License

Original code is licensed under the Gonum License found in the LICENSE file. Portions of the code are subject to the additional licenses found in THIRD_PARTY_LICENSES. All third party code is licensed either under a BSD or MIT license.

Code in graph/formats/dot is dual licensed Public Domain Dedication and Gonum License, and users are free to choose the license which suits their needs for this code.

The W3C test suites in graph/formats/rdf are distributed under both the W3C Test Suite License and the W3C 3-clause BSD License.

floats's People

Contributors

btracey avatar jonlawlor avatar jvlmdr avatar kortschak avatar sbinet avatar vladimir-ch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

floats's Issues

doesn't compile with go1.8 beta 1

Compiling with go1.8 beta 1 doesn't work.

$ go version
go version go1.8beta1 linux/amd64
$ go install github.com/gonum/floats
# github.com/gonum/internal/asm
usage: asm [options] file.s
Flags:
  -D value
    	predefined symbol with optional simple value -D=identifier=value; can be set multiple times
  -I value
    	include directory; can be set multiple times
  -S	print assembly and machine code
  -debug
    	dump instructions as they are parsed
  -dynlink
    	support references to Go symbols defined in other shared libraries
  -e	no limit on number of errors reported
  -o string
    	output file; default foo.6 for /a/b/c/foo.s on amd64
  -shared
    	generate code that can be linked into a shared library
  -trimpath string
    	remove prefix from recorded source file paths

With go1.7.1 it works ok.

$ go version
go version go1.7.1 linux/amd64
$ go install github.com/gonum/floats
$

Checked on revision 856ee81.

Sub and SubTo have confusing doc

The doc for Sub(s, t) states that the first argument is subtracted from the second. This implies that it computes (t-s) when it actually computes (s-t).

Build difficulties, missing function

I have run go get github.com/gonum/internal/asm then go get github.com/gonum/floats. The latter yields 7 errors that appear to be related to missing assembly functions, see below. Is this an issue or am I doing something wrong?

bash-4.1$ go get github.com/gonum/floats

github.com/gonum/floats

../../go_projects/src/github.com/gonum/floats/floats.go:27: undefined: asm.DaxpyUnitaryTo
../../go_projects/src/github.com/gonum/floats/floats.go:39: undefined: asm.DaxpyUnitaryTo
../../go_projects/src/github.com/gonum/floats/floats.go:56: undefined: asm.DaxpyUnitaryTo
../../go_projects/src/github.com/gonum/floats/floats.go:68: undefined: asm.DaxpyUnitaryTo
../../go_projects/src/github.com/gonum/floats/floats.go:702: undefined: asm.DscalUnitary
../../go_projects/src/github.com/gonum/floats/floats.go:732: undefined: asm.DaxpyUnitaryTo
../../go_projects/src/github.com/gonum/floats/floats.go:744: undefined: asm.DaxpyUnitaryTo

API behavior congruity

The rest of gonum has the property that if a destination slice is nil, a new slice is allocated. floats does not follow this property. Should it?

If so, these are the ones that need it:
AddScaledTo
AddTo
CumProd
CumSum
DivTo
MulTo
SubTo

Remove AddConst

In #27 @btracey mentioned that AddConst should be removed. It is just a wrapper around a simple loop but it is used at a couple of places in gonum (some of them added recently), so it looks like it is doing some service. What is the current opinion on this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.