1// Copyright ©2015 The Gonum Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5package gonum 6 7import ( 8 "sort" 9 10 "gonum.org/v1/gonum/lapack" 11) 12 13// Dlasrt sorts the numbers in the input slice d. If s == lapack.SortIncreasing, 14// the elements are sorted in increasing order. If s == lapack.SortDecreasing, 15// the elements are sorted in decreasing order. For other values of s Dlasrt 16// will panic. 17// 18// Dlasrt is an internal routine. It is exported for testing purposes. 19func (impl Implementation) Dlasrt(s lapack.Sort, n int, d []float64) { 20 switch { 21 case n < 0: 22 panic(nLT0) 23 case len(d) < n: 24 panic(shortD) 25 } 26 27 d = d[:n] 28 switch s { 29 default: 30 panic(badSort) 31 case lapack.SortIncreasing: 32 sort.Float64s(d) 33 case lapack.SortDecreasing: 34 sort.Sort(sort.Reverse(sort.Float64Slice(d))) 35 } 36} 37