Merge pull request #87088 from dims/switch-to-newer-gonum
Drop random SHA and update gonum.org/v1/gonum to v0.6.2
This commit is contained in:
		
							
								
								
									
										10
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								go.mod
									
									
									
									
									
								
							@@ -126,7 +126,7 @@ require (
 | 
			
		||||
	golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456
 | 
			
		||||
	golang.org/x/time v0.0.0-20190308202827-9d24e82272b4
 | 
			
		||||
	golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72
 | 
			
		||||
	gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485
 | 
			
		||||
	gonum.org/v1/gonum v0.6.2
 | 
			
		||||
	google.golang.org/api v0.6.1-0.20190607001116-5213b8090861
 | 
			
		||||
	google.golang.org/grpc v1.23.1
 | 
			
		||||
	gopkg.in/gcfg.v1 v1.2.0
 | 
			
		||||
@@ -194,6 +194,7 @@ replace (
 | 
			
		||||
	github.com/Rican7/retry => github.com/Rican7/retry v0.1.0
 | 
			
		||||
	github.com/StackExchange/wmi => github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6
 | 
			
		||||
	github.com/agnivade/levenshtein => github.com/agnivade/levenshtein v1.0.1
 | 
			
		||||
	github.com/ajstarks/svgo => github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af
 | 
			
		||||
	github.com/alecthomas/template => github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc
 | 
			
		||||
	github.com/alecthomas/units => github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf
 | 
			
		||||
	github.com/andreyvit/diff => github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883
 | 
			
		||||
@@ -256,6 +257,7 @@ replace (
 | 
			
		||||
	github.com/fatih/camelcase => github.com/fatih/camelcase v1.0.0
 | 
			
		||||
	github.com/fatih/color => github.com/fatih/color v1.7.0
 | 
			
		||||
	github.com/flynn/go-shlex => github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568
 | 
			
		||||
	github.com/fogleman/gg => github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90
 | 
			
		||||
	github.com/fsnotify/fsnotify => github.com/fsnotify/fsnotify v1.4.7
 | 
			
		||||
	github.com/ghodss/yaml => github.com/ghodss/yaml v1.0.0
 | 
			
		||||
	github.com/gliderlabs/ssh => github.com/gliderlabs/ssh v0.1.1
 | 
			
		||||
@@ -291,6 +293,7 @@ replace (
 | 
			
		||||
	github.com/gobwas/glob => github.com/gobwas/glob v0.2.3
 | 
			
		||||
	github.com/godbus/dbus => github.com/godbus/dbus v0.0.0-20181101234600-2ff6f7ffd60f
 | 
			
		||||
	github.com/gogo/protobuf => github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d
 | 
			
		||||
	github.com/golang/freetype => github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
 | 
			
		||||
	github.com/golang/glog => github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
 | 
			
		||||
	github.com/golang/groupcache => github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903
 | 
			
		||||
	github.com/golang/mock => github.com/golang/mock v1.2.0
 | 
			
		||||
@@ -353,6 +356,7 @@ replace (
 | 
			
		||||
	github.com/jstemmer/go-junit-report => github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024
 | 
			
		||||
	github.com/jtolds/gls => github.com/jtolds/gls v4.20.0+incompatible
 | 
			
		||||
	github.com/julienschmidt/httprouter => github.com/julienschmidt/httprouter v1.2.0
 | 
			
		||||
	github.com/jung-kurt/gofpdf => github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5
 | 
			
		||||
	github.com/karrick/godirwalk => github.com/karrick/godirwalk v1.7.5
 | 
			
		||||
	github.com/kisielk/errcheck => github.com/kisielk/errcheck v1.2.0
 | 
			
		||||
	github.com/kisielk/gotool => github.com/kisielk/gotool v1.0.0
 | 
			
		||||
@@ -497,8 +501,9 @@ replace (
 | 
			
		||||
	golang.org/x/time => golang.org/x/time v0.0.0-20190308202827-9d24e82272b4
 | 
			
		||||
	golang.org/x/tools => golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 // pinned to release-branch.go1.13
 | 
			
		||||
	golang.org/x/xerrors => golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7
 | 
			
		||||
	gonum.org/v1/gonum => gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485
 | 
			
		||||
	gonum.org/v1/gonum => gonum.org/v1/gonum v0.6.2
 | 
			
		||||
	gonum.org/v1/netlib => gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e
 | 
			
		||||
	gonum.org/v1/plot => gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b
 | 
			
		||||
	google.golang.org/api => google.golang.org/api v0.6.1-0.20190607001116-5213b8090861
 | 
			
		||||
	google.golang.org/appengine => google.golang.org/appengine v1.5.0
 | 
			
		||||
	google.golang.org/genproto => google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873
 | 
			
		||||
@@ -562,6 +567,7 @@ replace (
 | 
			
		||||
	mvdan.cc/interfacer => mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed
 | 
			
		||||
	mvdan.cc/lint => mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b
 | 
			
		||||
	mvdan.cc/unparam => mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34
 | 
			
		||||
	rsc.io/pdf => rsc.io/pdf v0.1.1
 | 
			
		||||
	sigs.k8s.io/kustomize => sigs.k8s.io/kustomize v2.0.3+incompatible
 | 
			
		||||
	sigs.k8s.io/structured-merge-diff => sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06
 | 
			
		||||
	sigs.k8s.io/yaml => sigs.k8s.io/yaml v1.1.0
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								go.sum
									
									
									
									
									
								
							@@ -46,6 +46,7 @@ github.com/Rican7/retry v0.1.0 h1:FqK94z34ly8Baa6K+G8Mmza9rYWTKOJk+yckIBB5qVk=
 | 
			
		||||
github.com/Rican7/retry v0.1.0/go.mod h1:FgOROf8P5bebcC1DS0PdOQiqGUridaZvikzUmkFW6gg=
 | 
			
		||||
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
 | 
			
		||||
github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
 | 
			
		||||
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
 | 
			
		||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 | 
			
		||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 | 
			
		||||
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
 | 
			
		||||
@@ -156,6 +157,7 @@ github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwo
 | 
			
		||||
github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
 | 
			
		||||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 | 
			
		||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
 | 
			
		||||
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 | 
			
		||||
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
 | 
			
		||||
@@ -208,6 +210,7 @@ github.com/godbus/dbus v0.0.0-20181101234600-2ff6f7ffd60f h1:zlOR3rOlPAVvtfuxGKo
 | 
			
		||||
github.com/godbus/dbus v0.0.0-20181101234600-2ff6f7ffd60f/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 | 
			
		||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 | 
			
		||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 h1:LbsanbbD6LieFkXbj9YNNBupiGHJgFeLpO0j0Fza1h8=
 | 
			
		||||
@@ -303,6 +306,7 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1
 | 
			
		||||
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
 | 
			
		||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
 | 
			
		||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 | 
			
		||||
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
 | 
			
		||||
github.com/karrick/godirwalk v1.7.5 h1:VbzFqwXwNbAZoA6W5odrLr+hKK197CcENcPh6E/gJ0M=
 | 
			
		||||
github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=
 | 
			
		||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
 | 
			
		||||
@@ -538,10 +542,11 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 h1:PVCvyir09Xgta5zksNZDkrL+eSm/Y+gQxRG3IfqNQ3A=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2 h1:4r+yNT0+8SWcOkXP+63H2zQbN+USnC73cjGUxnDF94Q=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
 | 
			
		||||
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
 | 
			
		||||
google.golang.org/api v0.6.1-0.20190607001116-5213b8090861 h1:ppLucX0K/60T3t6LPZQzTOkt5PytkEbQLIaSteq+TpE=
 | 
			
		||||
google.golang.org/api v0.6.1-0.20190607001116-5213b8090861/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4=
 | 
			
		||||
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
 | 
			
		||||
@@ -604,6 +609,7 @@ modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
 | 
			
		||||
mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc=
 | 
			
		||||
mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4=
 | 
			
		||||
mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34/go.mod h1:H6SUd1XjIs+qQCyskXg5OFSrilMRUkD8ePJpHKDPaeY=
 | 
			
		||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
 | 
			
		||||
sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0=
 | 
			
		||||
sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06 h1:zD2IemQ4LmOcAumeiyDWXKUI2SO0NYDe3H6QGvPOVgU=
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								staging/src/k8s.io/apiextensions-apiserver/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								staging/src/k8s.io/apiextensions-apiserver/go.sum
									
									
									
										generated
									
									
									
								
							@@ -22,6 +22,7 @@ github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdko
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
 | 
			
		||||
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
 | 
			
		||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 | 
			
		||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 | 
			
		||||
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
 | 
			
		||||
@@ -74,6 +75,7 @@ github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT
 | 
			
		||||
github.com/evanphx/json-patch v4.2.0+incompatible h1:fUDGZCv/7iAN7u0puUVhvKCcsR6vRfwrJatElLBEf0I=
 | 
			
		||||
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 | 
			
		||||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 | 
			
		||||
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 | 
			
		||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 | 
			
		||||
@@ -151,6 +153,7 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a
 | 
			
		||||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 | 
			
		||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 | 
			
		||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 h1:LbsanbbD6LieFkXbj9YNNBupiGHJgFeLpO0j0Fza1h8=
 | 
			
		||||
@@ -214,6 +217,7 @@ github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46O
 | 
			
		||||
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 | 
			
		||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
 | 
			
		||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 | 
			
		||||
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
 | 
			
		||||
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
 | 
			
		||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
 | 
			
		||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 | 
			
		||||
@@ -357,10 +361,13 @@ golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8U
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586 h1:7KByu05hhLed2MO29w7p1XfZvZ13m8mub3shuVftRs0=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495 h1:I6A9Ag9FpEKOjcKrRNjQkPHawoXIhKyTGfvvjFAiiAk=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
 | 
			
		||||
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
 | 
			
		||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 | 
			
		||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 | 
			
		||||
@@ -411,11 +418,15 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 h1:PVCvyir09Xgta5zksNZDkrL+eSm/Y+gQxRG3IfqNQ3A=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2 h1:4r+yNT0+8SWcOkXP+63H2zQbN+USnC73cjGUxnDF94Q=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
 | 
			
		||||
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
 | 
			
		||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
 | 
			
		||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 | 
			
		||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 | 
			
		||||
@@ -475,6 +486,7 @@ modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
 | 
			
		||||
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
 | 
			
		||||
modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
 | 
			
		||||
modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
 | 
			
		||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e h1:4Z09Hglb792X0kfOBBJUPFEyvVfQWrYT/l8h5EKA6JQ=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06 h1:zD2IemQ4LmOcAumeiyDWXKUI2SO0NYDe3H6QGvPOVgU=
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@ require (
 | 
			
		||||
	github.com/stretchr/testify v1.4.0 // indirect
 | 
			
		||||
	golang.org/x/net v0.0.0-20191004110552-13f9640d40b9 // indirect
 | 
			
		||||
	golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72 // indirect
 | 
			
		||||
	gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485
 | 
			
		||||
	gonum.org/v1/gonum v0.6.2
 | 
			
		||||
	gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e // indirect
 | 
			
		||||
	gopkg.in/yaml.v2 v2.2.7 // indirect
 | 
			
		||||
	k8s.io/gengo v0.0.0-20190822140433-26a664648505
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								staging/src/k8s.io/code-generator/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								staging/src/k8s.io/code-generator/go.sum
									
									
									
										generated
									
									
									
								
							@@ -6,6 +6,7 @@ github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
 | 
			
		||||
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 | 
			
		||||
@@ -13,6 +14,7 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
 | 
			
		||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 | 
			
		||||
github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk=
 | 
			
		||||
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 | 
			
		||||
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
 | 
			
		||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 | 
			
		||||
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
 | 
			
		||||
github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
 | 
			
		||||
@@ -35,6 +37,7 @@ github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tF
 | 
			
		||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 | 
			
		||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
 | 
			
		||||
github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
			
		||||
github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
 | 
			
		||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 | 
			
		||||
@@ -42,6 +45,7 @@ github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsC
 | 
			
		||||
github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
 | 
			
		||||
github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok=
 | 
			
		||||
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 | 
			
		||||
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
 | 
			
		||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
 | 
			
		||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 | 
			
		||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
 | 
			
		||||
@@ -82,9 +86,12 @@ github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJy
 | 
			
		||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495 h1:I6A9Ag9FpEKOjcKrRNjQkPHawoXIhKyTGfvvjFAiiAk=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
 | 
			
		||||
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
 | 
			
		||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 | 
			
		||||
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
 | 
			
		||||
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
@@ -103,11 +110,15 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 h1:PVCvyir09Xgta5zksNZDkrL+eSm/Y+gQxRG3IfqNQ3A=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2 h1:4r+yNT0+8SWcOkXP+63H2zQbN+USnC73cjGUxnDF94Q=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
 | 
			
		||||
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
 | 
			
		||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
			
		||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
 | 
			
		||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
			
		||||
@@ -130,5 +141,6 @@ modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
 | 
			
		||||
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
 | 
			
		||||
modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
 | 
			
		||||
modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
 | 
			
		||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
 | 
			
		||||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								staging/src/k8s.io/kube-aggregator/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								staging/src/k8s.io/kube-aggregator/go.sum
									
									
									
										generated
									
									
									
								
							@@ -20,6 +20,7 @@ github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
 | 
			
		||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 | 
			
		||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 | 
			
		||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 | 
			
		||||
@@ -67,6 +68,7 @@ github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT
 | 
			
		||||
github.com/evanphx/json-patch v4.2.0+incompatible h1:fUDGZCv/7iAN7u0puUVhvKCcsR6vRfwrJatElLBEf0I=
 | 
			
		||||
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 | 
			
		||||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 | 
			
		||||
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 | 
			
		||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 | 
			
		||||
@@ -97,6 +99,7 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a
 | 
			
		||||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 | 
			
		||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 | 
			
		||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 h1:LbsanbbD6LieFkXbj9YNNBupiGHJgFeLpO0j0Fza1h8=
 | 
			
		||||
@@ -160,6 +163,7 @@ github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46O
 | 
			
		||||
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 | 
			
		||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
 | 
			
		||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 | 
			
		||||
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
 | 
			
		||||
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
 | 
			
		||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
 | 
			
		||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 | 
			
		||||
@@ -290,10 +294,13 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586 h1:7KByu05hhLed2MO29w7p1XfZvZ13m8mub3shuVftRs0=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495 h1:I6A9Ag9FpEKOjcKrRNjQkPHawoXIhKyTGfvvjFAiiAk=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
 | 
			
		||||
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
 | 
			
		||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 | 
			
		||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 | 
			
		||||
@@ -342,11 +349,15 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 h1:PVCvyir09Xgta5zksNZDkrL+eSm/Y+gQxRG3IfqNQ3A=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2 h1:4r+yNT0+8SWcOkXP+63H2zQbN+USnC73cjGUxnDF94Q=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
 | 
			
		||||
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
 | 
			
		||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
 | 
			
		||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 | 
			
		||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 | 
			
		||||
@@ -405,6 +416,7 @@ modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
 | 
			
		||||
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
 | 
			
		||||
modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
 | 
			
		||||
modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
 | 
			
		||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e h1:4Z09Hglb792X0kfOBBJUPFEyvVfQWrYT/l8h5EKA6JQ=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06 h1:zD2IemQ4LmOcAumeiyDWXKUI2SO0NYDe3H6QGvPOVgU=
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								staging/src/k8s.io/kubectl/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										11
									
								
								staging/src/k8s.io/kubectl/go.sum
									
									
									
										generated
									
									
									
								
							@@ -21,6 +21,7 @@ github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
 | 
			
		||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 | 
			
		||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 | 
			
		||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 | 
			
		||||
@@ -58,6 +59,7 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwC
 | 
			
		||||
github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4=
 | 
			
		||||
github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=
 | 
			
		||||
github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
 | 
			
		||||
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 | 
			
		||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 | 
			
		||||
@@ -88,6 +90,7 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me
 | 
			
		||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 | 
			
		||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 | 
			
		||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 h1:LbsanbbD6LieFkXbj9YNNBupiGHJgFeLpO0j0Fza1h8=
 | 
			
		||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 | 
			
		||||
@@ -144,6 +147,7 @@ github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46O
 | 
			
		||||
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 | 
			
		||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
 | 
			
		||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 | 
			
		||||
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
 | 
			
		||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
 | 
			
		||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 | 
			
		||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
 | 
			
		||||
@@ -248,9 +252,12 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586 h1:7KByu05hhLed2MO29w7p1XfZvZ13m8mub3shuVftRs0=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
 | 
			
		||||
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
 | 
			
		||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 | 
			
		||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 | 
			
		||||
@@ -292,9 +299,12 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZe
 | 
			
		||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
 | 
			
		||||
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
 | 
			
		||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
 | 
			
		||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 | 
			
		||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 | 
			
		||||
@@ -339,6 +349,7 @@ modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
 | 
			
		||||
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
 | 
			
		||||
modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
 | 
			
		||||
modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
 | 
			
		||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
 | 
			
		||||
sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0=
 | 
			
		||||
sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								staging/src/k8s.io/metrics/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								staging/src/k8s.io/metrics/go.sum
									
									
									
										generated
									
									
									
								
							@@ -17,6 +17,7 @@ github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
 | 
			
		||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 | 
			
		||||
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
@@ -30,6 +31,7 @@ github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao
 | 
			
		||||
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 | 
			
		||||
github.com/evanphx/json-patch v4.2.0+incompatible h1:fUDGZCv/7iAN7u0puUVhvKCcsR6vRfwrJatElLBEf0I=
 | 
			
		||||
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 | 
			
		||||
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 | 
			
		||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 | 
			
		||||
@@ -54,6 +56,7 @@ github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tF
 | 
			
		||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 | 
			
		||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 | 
			
		||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 | 
			
		||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 | 
			
		||||
@@ -87,6 +90,7 @@ github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBv
 | 
			
		||||
github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok=
 | 
			
		||||
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 | 
			
		||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
 | 
			
		||||
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
 | 
			
		||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
 | 
			
		||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 | 
			
		||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
 | 
			
		||||
@@ -140,10 +144,13 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586 h1:7KByu05hhLed2MO29w7p1XfZvZ13m8mub3shuVftRs0=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495 h1:I6A9Ag9FpEKOjcKrRNjQkPHawoXIhKyTGfvvjFAiiAk=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
 | 
			
		||||
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
 | 
			
		||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 | 
			
		||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 | 
			
		||||
@@ -183,11 +190,15 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 h1:PVCvyir09Xgta5zksNZDkrL+eSm/Y+gQxRG3IfqNQ3A=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2 h1:4r+yNT0+8SWcOkXP+63H2zQbN+USnC73cjGUxnDF94Q=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
 | 
			
		||||
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
 | 
			
		||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
 | 
			
		||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 | 
			
		||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 | 
			
		||||
@@ -232,6 +243,7 @@ modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
 | 
			
		||||
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
 | 
			
		||||
modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
 | 
			
		||||
modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
 | 
			
		||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
 | 
			
		||||
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
 | 
			
		||||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								staging/src/k8s.io/node-api/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								staging/src/k8s.io/node-api/go.sum
									
									
									
										generated
									
									
									
								
							@@ -17,6 +17,7 @@ github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
 | 
			
		||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 | 
			
		||||
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
@@ -30,6 +31,7 @@ github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao
 | 
			
		||||
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 | 
			
		||||
github.com/evanphx/json-patch v4.2.0+incompatible h1:fUDGZCv/7iAN7u0puUVhvKCcsR6vRfwrJatElLBEf0I=
 | 
			
		||||
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 | 
			
		||||
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 | 
			
		||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 | 
			
		||||
@@ -54,6 +56,7 @@ github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tF
 | 
			
		||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 | 
			
		||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 | 
			
		||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 h1:LbsanbbD6LieFkXbj9YNNBupiGHJgFeLpO0j0Fza1h8=
 | 
			
		||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 | 
			
		||||
@@ -91,6 +94,7 @@ github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBv
 | 
			
		||||
github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok=
 | 
			
		||||
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 | 
			
		||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
 | 
			
		||||
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
 | 
			
		||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
 | 
			
		||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 | 
			
		||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
 | 
			
		||||
@@ -144,10 +148,13 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586 h1:7KByu05hhLed2MO29w7p1XfZvZ13m8mub3shuVftRs0=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495 h1:I6A9Ag9FpEKOjcKrRNjQkPHawoXIhKyTGfvvjFAiiAk=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
 | 
			
		||||
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
 | 
			
		||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 | 
			
		||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 | 
			
		||||
@@ -187,11 +194,15 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 h1:PVCvyir09Xgta5zksNZDkrL+eSm/Y+gQxRG3IfqNQ3A=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2 h1:4r+yNT0+8SWcOkXP+63H2zQbN+USnC73cjGUxnDF94Q=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
 | 
			
		||||
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
 | 
			
		||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
 | 
			
		||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 | 
			
		||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 | 
			
		||||
@@ -236,6 +247,7 @@ modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
 | 
			
		||||
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
 | 
			
		||||
modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
 | 
			
		||||
modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
 | 
			
		||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
 | 
			
		||||
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
 | 
			
		||||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								staging/src/k8s.io/sample-apiserver/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								staging/src/k8s.io/sample-apiserver/go.sum
									
									
									
										generated
									
									
									
								
							@@ -20,6 +20,7 @@ github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
 | 
			
		||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 | 
			
		||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 | 
			
		||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 | 
			
		||||
@@ -65,6 +66,7 @@ github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT
 | 
			
		||||
github.com/evanphx/json-patch v4.2.0+incompatible h1:fUDGZCv/7iAN7u0puUVhvKCcsR6vRfwrJatElLBEf0I=
 | 
			
		||||
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 | 
			
		||||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 | 
			
		||||
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 | 
			
		||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 | 
			
		||||
@@ -95,6 +97,7 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a
 | 
			
		||||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 | 
			
		||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 | 
			
		||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 h1:LbsanbbD6LieFkXbj9YNNBupiGHJgFeLpO0j0Fza1h8=
 | 
			
		||||
@@ -158,6 +161,7 @@ github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46O
 | 
			
		||||
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 | 
			
		||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
 | 
			
		||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 | 
			
		||||
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
 | 
			
		||||
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
 | 
			
		||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
 | 
			
		||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 | 
			
		||||
@@ -287,10 +291,13 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586 h1:7KByu05hhLed2MO29w7p1XfZvZ13m8mub3shuVftRs0=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495 h1:I6A9Ag9FpEKOjcKrRNjQkPHawoXIhKyTGfvvjFAiiAk=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
 | 
			
		||||
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
 | 
			
		||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 | 
			
		||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 | 
			
		||||
@@ -339,11 +346,15 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 h1:PVCvyir09Xgta5zksNZDkrL+eSm/Y+gQxRG3IfqNQ3A=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2 h1:4r+yNT0+8SWcOkXP+63H2zQbN+USnC73cjGUxnDF94Q=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
 | 
			
		||||
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
 | 
			
		||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
 | 
			
		||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 | 
			
		||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 | 
			
		||||
@@ -402,6 +413,7 @@ modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
 | 
			
		||||
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
 | 
			
		||||
modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
 | 
			
		||||
modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
 | 
			
		||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e h1:4Z09Hglb792X0kfOBBJUPFEyvVfQWrYT/l8h5EKA6JQ=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06 h1:zD2IemQ4LmOcAumeiyDWXKUI2SO0NYDe3H6QGvPOVgU=
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								staging/src/k8s.io/sample-controller/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								staging/src/k8s.io/sample-controller/go.sum
									
									
									
										generated
									
									
									
								
							@@ -17,6 +17,7 @@ github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
 | 
			
		||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 | 
			
		||||
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
 | 
			
		||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 | 
			
		||||
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
@@ -30,6 +31,7 @@ github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao
 | 
			
		||||
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
 | 
			
		||||
github.com/evanphx/json-patch v4.2.0+incompatible h1:fUDGZCv/7iAN7u0puUVhvKCcsR6vRfwrJatElLBEf0I=
 | 
			
		||||
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 | 
			
		||||
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 | 
			
		||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 | 
			
		||||
@@ -54,6 +56,7 @@ github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tF
 | 
			
		||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
 | 
			
		||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 | 
			
		||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 | 
			
		||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 h1:LbsanbbD6LieFkXbj9YNNBupiGHJgFeLpO0j0Fza1h8=
 | 
			
		||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 | 
			
		||||
@@ -92,6 +95,7 @@ github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBv
 | 
			
		||||
github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok=
 | 
			
		||||
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 | 
			
		||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
 | 
			
		||||
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
 | 
			
		||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
 | 
			
		||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 | 
			
		||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
 | 
			
		||||
@@ -145,10 +149,13 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586 h1:7KByu05hhLed2MO29w7p1XfZvZ13m8mub3shuVftRs0=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495 h1:I6A9Ag9FpEKOjcKrRNjQkPHawoXIhKyTGfvvjFAiiAk=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
 | 
			
		||||
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
 | 
			
		||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 | 
			
		||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 | 
			
		||||
@@ -188,11 +195,15 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7 h1:PVCvyir09Xgta5zksNZDkrL+eSm/Y+gQxRG3IfqNQ3A=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
 | 
			
		||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2 h1:4r+yNT0+8SWcOkXP+63H2zQbN+USnC73cjGUxnDF94Q=
 | 
			
		||||
gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=
 | 
			
		||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
 | 
			
		||||
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
 | 
			
		||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
 | 
			
		||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 | 
			
		||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 | 
			
		||||
@@ -237,6 +248,7 @@ modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
 | 
			
		||||
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
 | 
			
		||||
modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
 | 
			
		||||
modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
 | 
			
		||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
 | 
			
		||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
 | 
			
		||||
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
 | 
			
		||||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/gonum.org/v1/gonum/AUTHORS
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/gonum.org/v1/gonum/AUTHORS
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -20,10 +20,14 @@ Christophe Meessen <christophe.meessen@gmail.com>
 | 
			
		||||
Clayton Northey <clayton.northey@gmail.com>
 | 
			
		||||
Dan Kortschak <dan.kortschak@adelaide.edu.au> <dan@kortschak.io>
 | 
			
		||||
Daniel Fireman <danielfireman@gmail.com>
 | 
			
		||||
Dario Heinisch <dario.heinisch@gmail.com>
 | 
			
		||||
David Kleiven <davidkleiven446@gmail.com>
 | 
			
		||||
David Samborski <bloggingarrow@gmail.com>
 | 
			
		||||
Davor Kapsa <davor.kapsa@gmail.com>
 | 
			
		||||
DeepMind Technologies
 | 
			
		||||
Delaney Gillilan <delaneygillilan@gmail.com>
 | 
			
		||||
Dezmond Goff <goff.dezmond@gmail.com>
 | 
			
		||||
Dong-hee Na <donghee.na92@gmail.com>
 | 
			
		||||
Egon Elbre <egonelbre@gmail.com>
 | 
			
		||||
Ekaterina Efimova <katerina.efimova@gmail.com>
 | 
			
		||||
Ethan Burns <burns.ethan@gmail.com>
 | 
			
		||||
@@ -46,6 +50,7 @@ Jeremy Atkinson <jchatkinson@gmail.com>
 | 
			
		||||
Jonas Kahler <jonas@derkahler.de>
 | 
			
		||||
Jonas Schulze <jonas.schulze@ovgu.de>
 | 
			
		||||
Jonathan J Lawlor <jonathan.lawlor@gmail.com>
 | 
			
		||||
Jonathan Reiter <jonreiter@gmail.com>
 | 
			
		||||
Jonathan Schroeder <jd.schroeder@gmail.com>
 | 
			
		||||
Joseph Watson <jtwatson@linux-consulting.us>
 | 
			
		||||
Josh Wilson <josh.craig.wilson@gmail.com>
 | 
			
		||||
@@ -61,7 +66,9 @@ Martin Diz <github@martindiz.com.ar>
 | 
			
		||||
Matthieu Di Mercurio <matthieu.dimercurio@gmail.com>
 | 
			
		||||
Max Halford <maxhalford25@gmail.com>
 | 
			
		||||
MinJae Kwon <k239507@gmail.com>
 | 
			
		||||
Nathan Edwards <etaoinshrdluwho@gmail.com>
 | 
			
		||||
Nick Potts <nick@the-potts.com>
 | 
			
		||||
Nils Wogatzky <odog@netcologne.de>
 | 
			
		||||
Olivier Wulveryck <olivier.wulveryck@gmail.com>
 | 
			
		||||
Or Rikon <rikonor@gmail.com>
 | 
			
		||||
Pontus Melke <pontusmelke@gmail.com>
 | 
			
		||||
@@ -87,3 +94,4 @@ Tobin Harding <me@tobin.cc>
 | 
			
		||||
Vincent Thiery <vjmthiery@gmail.com>
 | 
			
		||||
Vladimír Chalupecký <vladimir.chalupecky@gmail.com>
 | 
			
		||||
Yevgeniy Vahlis <evahlis@gmail.com>
 | 
			
		||||
Yucheng Zhu <zyctc000@gmail.com>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/gonum.org/v1/gonum/CONTRIBUTORS
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/gonum.org/v1/gonum/CONTRIBUTORS
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -28,9 +28,13 @@ Christophe Meessen <christophe.meessen@gmail.com>
 | 
			
		||||
Clayton Northey <clayton.northey@gmail.com>
 | 
			
		||||
Dan Kortschak <dan.kortschak@adelaide.edu.au> <dan@kortschak.io>
 | 
			
		||||
Daniel Fireman <danielfireman@gmail.com>
 | 
			
		||||
Dario Heinisch <dario.heinisch@gmail.com>
 | 
			
		||||
David Kleiven <davidkleiven446@gmail.com>
 | 
			
		||||
David Samborski <bloggingarrow@gmail.com>
 | 
			
		||||
Davor Kapsa <davor.kapsa@gmail.com>
 | 
			
		||||
Delaney Gillilan <delaneygillilan@gmail.com>
 | 
			
		||||
Dezmond Goff <goff.dezmond@gmail.com>
 | 
			
		||||
Dong-hee Na <donghee.na92@gmail.com>
 | 
			
		||||
Egon Elbre <egonelbre@gmail.com>
 | 
			
		||||
Ekaterina Efimova <katerina.efimova@gmail.com>
 | 
			
		||||
Ethan Burns <burns.ethan@gmail.com>
 | 
			
		||||
@@ -52,6 +56,7 @@ Jeremy Atkinson <jchatkinson@gmail.com>
 | 
			
		||||
Jonas Kahler <jonas@derkahler.de>
 | 
			
		||||
Jonas Schulze <jonas.schulze@ovgu.de>
 | 
			
		||||
Jonathan J Lawlor <jonathan.lawlor@gmail.com>
 | 
			
		||||
Jonathan Reiter <jonreiter@gmail.com>
 | 
			
		||||
Jonathan Schroeder <jd.schroeder@gmail.com>
 | 
			
		||||
Joseph Watson <jtwatson@linux-consulting.us>
 | 
			
		||||
Josh Wilson <josh.craig.wilson@gmail.com>
 | 
			
		||||
@@ -67,7 +72,9 @@ Martin Diz <github@martindiz.com.ar>
 | 
			
		||||
Matthieu Di Mercurio <matthieu.dimercurio@gmail.com>
 | 
			
		||||
Max Halford <maxhalford25@gmail.com>
 | 
			
		||||
MinJae Kwon <k239507@gmail.com>
 | 
			
		||||
Nathan Edwards <etaoinshrdluwho@gmail.com>
 | 
			
		||||
Nick Potts <nick@the-potts.com>
 | 
			
		||||
Nils Wogatzky <odog@netcologne.de>
 | 
			
		||||
Olivier Wulveryck <olivier.wulveryck@gmail.com>
 | 
			
		||||
Or Rikon <rikonor@gmail.com>
 | 
			
		||||
Pontus Melke <pontusmelke@gmail.com>
 | 
			
		||||
@@ -89,3 +96,4 @@ Tobin Harding <me@tobin.cc>
 | 
			
		||||
Vincent Thiery <vjmthiery@gmail.com>
 | 
			
		||||
Vladimír Chalupecký <vladimir.chalupecky@gmail.com>
 | 
			
		||||
Yevgeniy Vahlis <evahlis@gmail.com>
 | 
			
		||||
Yucheng Zhu <zyctc000@gmail.com>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										75
									
								
								vendor/gonum.org/v1/gonum/blas/blas64/blas64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										75
									
								
								vendor/gonum.org/v1/gonum/blas/blas64/blas64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -106,6 +106,7 @@ const (
 | 
			
		||||
 | 
			
		||||
// Dot computes the dot product of the two vectors:
 | 
			
		||||
//  \sum_i x[i]*y[i].
 | 
			
		||||
// Dot will panic if the lengths of x and y do not match.
 | 
			
		||||
func Dot(x, y Vector) float64 {
 | 
			
		||||
	if x.N != y.N {
 | 
			
		||||
		panic(badLength)
 | 
			
		||||
@@ -149,6 +150,7 @@ func Iamax(x Vector) int {
 | 
			
		||||
 | 
			
		||||
// Swap exchanges the elements of the two vectors:
 | 
			
		||||
//  x[i], y[i] = y[i], x[i] for all i.
 | 
			
		||||
// Swap will panic if the lengths of x and y do not match.
 | 
			
		||||
func Swap(x, y Vector) {
 | 
			
		||||
	if x.N != y.N {
 | 
			
		||||
		panic(badLength)
 | 
			
		||||
@@ -158,7 +160,7 @@ func Swap(x, y Vector) {
 | 
			
		||||
 | 
			
		||||
// Copy copies the elements of x into the elements of y:
 | 
			
		||||
//  y[i] = x[i] for all i.
 | 
			
		||||
// Copy requires that the lengths of x and y match and will panic otherwise.
 | 
			
		||||
// Copy will panic if the lengths of x and y do not match.
 | 
			
		||||
func Copy(x, y Vector) {
 | 
			
		||||
	if x.N != y.N {
 | 
			
		||||
		panic(badLength)
 | 
			
		||||
@@ -168,6 +170,7 @@ func Copy(x, y Vector) {
 | 
			
		||||
 | 
			
		||||
// Axpy adds x scaled by alpha to y:
 | 
			
		||||
//  y[i] += alpha*x[i] for all i.
 | 
			
		||||
// Axpy will panic if the lengths of x and y do not match.
 | 
			
		||||
func Axpy(alpha float64, x, y Vector) {
 | 
			
		||||
	if x.N != y.N {
 | 
			
		||||
		panic(badLength)
 | 
			
		||||
@@ -232,48 +235,48 @@ func Scal(alpha float64, x Vector) {
 | 
			
		||||
// Level 2
 | 
			
		||||
 | 
			
		||||
// Gemv computes
 | 
			
		||||
//  y = alpha * A * x + beta * y,   if t == blas.NoTrans,
 | 
			
		||||
//  y = alpha * A^T * x + beta * y, if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
//  y = alpha * A * x + beta * y   if t == blas.NoTrans,
 | 
			
		||||
//  y = alpha * Aᵀ * x + beta * y  if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha and beta are scalars.
 | 
			
		||||
func Gemv(t blas.Transpose, alpha float64, a General, x Vector, beta float64, y Vector) {
 | 
			
		||||
	blas64.Dgemv(t, a.Rows, a.Cols, alpha, a.Data, a.Stride, x.Data, x.Inc, beta, y.Data, y.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Gbmv computes
 | 
			
		||||
//  y = alpha * A * x + beta * y,   if t == blas.NoTrans,
 | 
			
		||||
//  y = alpha * A^T * x + beta * y, if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
//  y = alpha * A * x + beta * y   if t == blas.NoTrans,
 | 
			
		||||
//  y = alpha * Aᵀ * x + beta * y  if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
// where A is an m×n band matrix, x and y are vectors, and alpha and beta are scalars.
 | 
			
		||||
func Gbmv(t blas.Transpose, alpha float64, a Band, x Vector, beta float64, y Vector) {
 | 
			
		||||
	blas64.Dgbmv(t, a.Rows, a.Cols, a.KL, a.KU, alpha, a.Data, a.Stride, x.Data, x.Inc, beta, y.Data, y.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Trmv computes
 | 
			
		||||
//  x = A * x,   if t == blas.NoTrans,
 | 
			
		||||
//  x = A^T * x, if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
//  x = A * x   if t == blas.NoTrans,
 | 
			
		||||
//  x = Aᵀ * x  if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
// where A is an n×n triangular matrix, and x is a vector.
 | 
			
		||||
func Trmv(t blas.Transpose, a Triangular, x Vector) {
 | 
			
		||||
	blas64.Dtrmv(a.Uplo, t, a.Diag, a.N, a.Data, a.Stride, x.Data, x.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tbmv computes
 | 
			
		||||
//  x = A * x,   if t == blas.NoTrans,
 | 
			
		||||
//  x = A^T * x, if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
//  x = A * x   if t == blas.NoTrans,
 | 
			
		||||
//  x = Aᵀ * x  if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
// where A is an n×n triangular band matrix, and x is a vector.
 | 
			
		||||
func Tbmv(t blas.Transpose, a TriangularBand, x Vector) {
 | 
			
		||||
	blas64.Dtbmv(a.Uplo, t, a.Diag, a.N, a.K, a.Data, a.Stride, x.Data, x.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tpmv computes
 | 
			
		||||
//  x = A * x,   if t == blas.NoTrans,
 | 
			
		||||
//  x = A^T * x, if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
//  x = A * x   if t == blas.NoTrans,
 | 
			
		||||
//  x = Aᵀ * x  if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
// where A is an n×n triangular matrix in packed format, and x is a vector.
 | 
			
		||||
func Tpmv(t blas.Transpose, a TriangularPacked, x Vector) {
 | 
			
		||||
	blas64.Dtpmv(a.Uplo, t, a.Diag, a.N, a.Data, x.Data, x.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Trsv solves
 | 
			
		||||
//  A * x = b,   if t == blas.NoTrans,
 | 
			
		||||
//  A^T * x = b, if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
//  A * x = b   if t == blas.NoTrans,
 | 
			
		||||
//  Aᵀ * x = b  if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
// where A is an n×n triangular matrix, and x and b are vectors.
 | 
			
		||||
//
 | 
			
		||||
// At entry to the function, x contains the values of b, and the result is
 | 
			
		||||
@@ -286,8 +289,8 @@ func Trsv(t blas.Transpose, a Triangular, x Vector) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tbsv solves
 | 
			
		||||
//  A * x = b,   if t == blas.NoTrans,
 | 
			
		||||
//  A^T * x = b, if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
//  A * x = b   if t == blas.NoTrans,
 | 
			
		||||
//  Aᵀ * x = b  if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
// where A is an n×n triangular band matrix, and x and b are vectors.
 | 
			
		||||
//
 | 
			
		||||
// At entry to the function, x contains the values of b, and the result is
 | 
			
		||||
@@ -300,8 +303,8 @@ func Tbsv(t blas.Transpose, a TriangularBand, x Vector) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tpsv solves
 | 
			
		||||
//  A * x = b,   if t == blas.NoTrans,
 | 
			
		||||
//  A^T * x = b, if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
//  A * x = b   if t == blas.NoTrans,
 | 
			
		||||
//  Aᵀ * x = b  if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
// where A is an n×n triangular matrix in packed format, and x and b are
 | 
			
		||||
// vectors.
 | 
			
		||||
//
 | 
			
		||||
@@ -339,21 +342,21 @@ func Spmv(alpha float64, a SymmetricPacked, x Vector, beta float64, y Vector) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Ger performs a rank-1 update
 | 
			
		||||
//  A += alpha * x * y^T,
 | 
			
		||||
//  A += alpha * x * yᵀ,
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha is a scalar.
 | 
			
		||||
func Ger(alpha float64, x, y Vector, a General) {
 | 
			
		||||
	blas64.Dger(a.Rows, a.Cols, alpha, x.Data, x.Inc, y.Data, y.Inc, a.Data, a.Stride)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Syr performs a rank-1 update
 | 
			
		||||
//  A += alpha * x * x^T,
 | 
			
		||||
//  A += alpha * x * xᵀ,
 | 
			
		||||
// where A is an n×n symmetric matrix, x is a vector, and alpha is a scalar.
 | 
			
		||||
func Syr(alpha float64, x Vector, a Symmetric) {
 | 
			
		||||
	blas64.Dsyr(a.Uplo, a.N, alpha, x.Data, x.Inc, a.Data, a.Stride)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Spr performs the rank-1 update
 | 
			
		||||
//  A += alpha * x * x^T,
 | 
			
		||||
//  A += alpha * x * xᵀ,
 | 
			
		||||
// where A is an n×n symmetric matrix in packed format, x is a vector, and
 | 
			
		||||
// alpha is a scalar.
 | 
			
		||||
func Spr(alpha float64, x Vector, a SymmetricPacked) {
 | 
			
		||||
@@ -361,14 +364,14 @@ func Spr(alpha float64, x Vector, a SymmetricPacked) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Syr2 performs a rank-2 update
 | 
			
		||||
//  A += alpha * x * y^T + alpha * y * x^T,
 | 
			
		||||
//  A += alpha * x * yᵀ + alpha * y * xᵀ,
 | 
			
		||||
// where A is a symmetric n×n matrix, x and y are vectors, and alpha is a scalar.
 | 
			
		||||
func Syr2(alpha float64, x, y Vector, a Symmetric) {
 | 
			
		||||
	blas64.Dsyr2(a.Uplo, a.N, alpha, x.Data, x.Inc, y.Data, y.Inc, a.Data, a.Stride)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Spr2 performs a rank-2 update
 | 
			
		||||
//  A += alpha * x * y^T + alpha * y * x^T,
 | 
			
		||||
//  A += alpha * x * yᵀ + alpha * y * xᵀ,
 | 
			
		||||
// where A is an n×n symmetric matrix in packed format, x and y are vectors,
 | 
			
		||||
// and alpha is a scalar.
 | 
			
		||||
func Spr2(alpha float64, x, y Vector, a SymmetricPacked) {
 | 
			
		||||
@@ -397,8 +400,8 @@ func Gemm(tA, tB blas.Transpose, alpha float64, a, b General, beta float64, c Ge
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Symm performs
 | 
			
		||||
//  C = alpha * A * B + beta * C, if s == blas.Left,
 | 
			
		||||
//  C = alpha * B * A + beta * C, if s == blas.Right,
 | 
			
		||||
//  C = alpha * A * B + beta * C  if s == blas.Left,
 | 
			
		||||
//  C = alpha * B * A + beta * C  if s == blas.Right,
 | 
			
		||||
// where A is an n×n or m×m symmetric matrix, B and C are m×n matrices, and
 | 
			
		||||
// alpha is a scalar.
 | 
			
		||||
func Symm(s blas.Side, alpha float64, a Symmetric, b General, beta float64, c General) {
 | 
			
		||||
@@ -412,8 +415,8 @@ func Symm(s blas.Side, alpha float64, a Symmetric, b General, beta float64, c Ge
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Syrk performs a symmetric rank-k update
 | 
			
		||||
//  C = alpha * A * A^T + beta * C, if t == blas.NoTrans,
 | 
			
		||||
//  C = alpha * A^T * A + beta * C, if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
//  C = alpha * A * Aᵀ + beta * C  if t == blas.NoTrans,
 | 
			
		||||
//  C = alpha * Aᵀ * A + beta * C  if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
// where C is an n×n symmetric matrix, A is an n×k matrix if t == blas.NoTrans and
 | 
			
		||||
// a k×n matrix otherwise, and alpha and beta are scalars.
 | 
			
		||||
func Syrk(t blas.Transpose, alpha float64, a General, beta float64, c Symmetric) {
 | 
			
		||||
@@ -427,8 +430,8 @@ func Syrk(t blas.Transpose, alpha float64, a General, beta float64, c Symmetric)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Syr2k performs a symmetric rank-2k update
 | 
			
		||||
//  C = alpha * A * B^T + alpha * B * A^T + beta * C, if t == blas.NoTrans,
 | 
			
		||||
//  C = alpha * A^T * B + alpha * B^T * A + beta * C, if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
//  C = alpha * A * Bᵀ + alpha * B * Aᵀ + beta * C  if t == blas.NoTrans,
 | 
			
		||||
//  C = alpha * Aᵀ * B + alpha * Bᵀ * A + beta * C  if t == blas.Trans or blas.ConjTrans,
 | 
			
		||||
// where C is an n×n symmetric matrix, A and B are n×k matrices if t == NoTrans
 | 
			
		||||
// and k×n matrices otherwise, and alpha and beta are scalars.
 | 
			
		||||
func Syr2k(t blas.Transpose, alpha float64, a, b General, beta float64, c Symmetric) {
 | 
			
		||||
@@ -442,10 +445,10 @@ func Syr2k(t blas.Transpose, alpha float64, a, b General, beta float64, c Symmet
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Trmm performs
 | 
			
		||||
//  B = alpha * A * B,   if tA == blas.NoTrans and s == blas.Left,
 | 
			
		||||
//  B = alpha * A^T * B, if tA == blas.Trans or blas.ConjTrans, and s == blas.Left,
 | 
			
		||||
//  B = alpha * B * A,   if tA == blas.NoTrans and s == blas.Right,
 | 
			
		||||
//  B = alpha * B * A^T, if tA == blas.Trans or blas.ConjTrans, and s == blas.Right,
 | 
			
		||||
//  B = alpha * A * B   if tA == blas.NoTrans and s == blas.Left,
 | 
			
		||||
//  B = alpha * Aᵀ * B  if tA == blas.Trans or blas.ConjTrans, and s == blas.Left,
 | 
			
		||||
//  B = alpha * B * A   if tA == blas.NoTrans and s == blas.Right,
 | 
			
		||||
//  B = alpha * B * Aᵀ  if tA == blas.Trans or blas.ConjTrans, and s == blas.Right,
 | 
			
		||||
// where A is an n×n or m×m triangular matrix, B is an m×n matrix, and alpha is
 | 
			
		||||
// a scalar.
 | 
			
		||||
func Trmm(s blas.Side, tA blas.Transpose, alpha float64, a Triangular, b General) {
 | 
			
		||||
@@ -453,10 +456,10 @@ func Trmm(s blas.Side, tA blas.Transpose, alpha float64, a Triangular, b General
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Trsm solves
 | 
			
		||||
//  A * X = alpha * B,   if tA == blas.NoTrans and s == blas.Left,
 | 
			
		||||
//  A^T * X = alpha * B, if tA == blas.Trans or blas.ConjTrans, and s == blas.Left,
 | 
			
		||||
//  X * A = alpha * B,   if tA == blas.NoTrans and s == blas.Right,
 | 
			
		||||
//  X * A^T = alpha * B, if tA == blas.Trans or blas.ConjTrans, and s == blas.Right,
 | 
			
		||||
//  A * X = alpha * B   if tA == blas.NoTrans and s == blas.Left,
 | 
			
		||||
//  Aᵀ * X = alpha * B  if tA == blas.Trans or blas.ConjTrans, and s == blas.Left,
 | 
			
		||||
//  X * A = alpha * B   if tA == blas.NoTrans and s == blas.Right,
 | 
			
		||||
//  X * Aᵀ = alpha * B  if tA == blas.Trans or blas.ConjTrans, and s == blas.Right,
 | 
			
		||||
// where A is an n×n or m×m triangular matrix, X and B are m×n matrices, and
 | 
			
		||||
// alpha is a scalar.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/blas/blas64/conv.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/blas/blas64/conv.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -169,7 +169,7 @@ func (t Band) From(a BandCols) {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// TriangularBandCols represents a symmetric matrix using the band column-major storage scheme.
 | 
			
		||||
// TriangularBandCols represents a triangular matrix using the band column-major storage scheme.
 | 
			
		||||
type TriangularBandCols TriangularBand
 | 
			
		||||
 | 
			
		||||
// From fills the receiver with elements from a. The receiver
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										178
									
								
								vendor/gonum.org/v1/gonum/blas/cblas128/cblas128.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										178
									
								
								vendor/gonum.org/v1/gonum/blas/cblas128/cblas128.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -28,6 +28,7 @@ func Implementation() blas.Complex128 {
 | 
			
		||||
 | 
			
		||||
// Vector represents a vector with an associated element increment.
 | 
			
		||||
type Vector struct {
 | 
			
		||||
	N    int
 | 
			
		||||
	Inc  int
 | 
			
		||||
	Data []complex128
 | 
			
		||||
}
 | 
			
		||||
@@ -107,31 +108,42 @@ type HermitianPacked SymmetricPacked
 | 
			
		||||
 | 
			
		||||
// Level 1
 | 
			
		||||
 | 
			
		||||
const negInc = "cblas128: negative vector increment"
 | 
			
		||||
const (
 | 
			
		||||
	negInc    = "cblas128: negative vector increment"
 | 
			
		||||
	badLength = "cblas128: vector length mismatch"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Dotu computes the dot product of the two vectors without
 | 
			
		||||
// complex conjugation:
 | 
			
		||||
//  x^T * y.
 | 
			
		||||
func Dotu(n int, x, y Vector) complex128 {
 | 
			
		||||
	return cblas128.Zdotu(n, x.Data, x.Inc, y.Data, y.Inc)
 | 
			
		||||
//  xᵀ * y.
 | 
			
		||||
// Dotu will panic if the lengths of x and y do not match.
 | 
			
		||||
func Dotu(x, y Vector) complex128 {
 | 
			
		||||
	if x.N != y.N {
 | 
			
		||||
		panic(badLength)
 | 
			
		||||
	}
 | 
			
		||||
	return cblas128.Zdotu(x.N, x.Data, x.Inc, y.Data, y.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Dotc computes the dot product of the two vectors with
 | 
			
		||||
// complex conjugation:
 | 
			
		||||
//  x^H * y.
 | 
			
		||||
func Dotc(n int, x, y Vector) complex128 {
 | 
			
		||||
	return cblas128.Zdotc(n, x.Data, x.Inc, y.Data, y.Inc)
 | 
			
		||||
//  xᴴ * y.
 | 
			
		||||
// Dotc will panic if the lengths of x and y do not match.
 | 
			
		||||
func Dotc(x, y Vector) complex128 {
 | 
			
		||||
	if x.N != y.N {
 | 
			
		||||
		panic(badLength)
 | 
			
		||||
	}
 | 
			
		||||
	return cblas128.Zdotc(x.N, x.Data, x.Inc, y.Data, y.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Nrm2 computes the Euclidean norm of the vector x:
 | 
			
		||||
//  sqrt(\sum_i x[i] * x[i]).
 | 
			
		||||
//
 | 
			
		||||
// Nrm2 will panic if the vector increment is negative.
 | 
			
		||||
func Nrm2(n int, x Vector) float64 {
 | 
			
		||||
func Nrm2(x Vector) float64 {
 | 
			
		||||
	if x.Inc < 0 {
 | 
			
		||||
		panic(negInc)
 | 
			
		||||
	}
 | 
			
		||||
	return cblas128.Dznrm2(n, x.Data, x.Inc)
 | 
			
		||||
	return cblas128.Dznrm2(x.N, x.Data, x.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Asum computes the sum of magnitudes of the real and imaginary parts of
 | 
			
		||||
@@ -139,11 +151,11 @@ func Nrm2(n int, x Vector) float64 {
 | 
			
		||||
//  \sum_i (|Re x[i]| + |Im x[i]|).
 | 
			
		||||
//
 | 
			
		||||
// Asum will panic if the vector increment is negative.
 | 
			
		||||
func Asum(n int, x Vector) float64 {
 | 
			
		||||
func Asum(x Vector) float64 {
 | 
			
		||||
	if x.Inc < 0 {
 | 
			
		||||
		panic(negInc)
 | 
			
		||||
	}
 | 
			
		||||
	return cblas128.Dzasum(n, x.Data, x.Inc)
 | 
			
		||||
	return cblas128.Dzasum(x.N, x.Data, x.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Iamax returns the index of an element of x with the largest sum of
 | 
			
		||||
@@ -153,30 +165,42 @@ func Asum(n int, x Vector) float64 {
 | 
			
		||||
// Iamax returns -1 if n == 0.
 | 
			
		||||
//
 | 
			
		||||
// Iamax will panic if the vector increment is negative.
 | 
			
		||||
func Iamax(n int, x Vector) int {
 | 
			
		||||
func Iamax(x Vector) int {
 | 
			
		||||
	if x.Inc < 0 {
 | 
			
		||||
		panic(negInc)
 | 
			
		||||
	}
 | 
			
		||||
	return cblas128.Izamax(n, x.Data, x.Inc)
 | 
			
		||||
	return cblas128.Izamax(x.N, x.Data, x.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Swap exchanges the elements of two vectors:
 | 
			
		||||
//  x[i], y[i] = y[i], x[i] for all i.
 | 
			
		||||
func Swap(n int, x, y Vector) {
 | 
			
		||||
	cblas128.Zswap(n, x.Data, x.Inc, y.Data, y.Inc)
 | 
			
		||||
// Swap will panic if the lengths of x and y do not match.
 | 
			
		||||
func Swap(x, y Vector) {
 | 
			
		||||
	if x.N != y.N {
 | 
			
		||||
		panic(badLength)
 | 
			
		||||
	}
 | 
			
		||||
	cblas128.Zswap(x.N, x.Data, x.Inc, y.Data, y.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Copy copies the elements of x into the elements of y:
 | 
			
		||||
//  y[i] = x[i] for all i.
 | 
			
		||||
func Copy(n int, x, y Vector) {
 | 
			
		||||
	cblas128.Zcopy(n, x.Data, x.Inc, y.Data, y.Inc)
 | 
			
		||||
// Copy will panic if the lengths of x and y do not match.
 | 
			
		||||
func Copy(x, y Vector) {
 | 
			
		||||
	if x.N != y.N {
 | 
			
		||||
		panic(badLength)
 | 
			
		||||
	}
 | 
			
		||||
	cblas128.Zcopy(x.N, x.Data, x.Inc, y.Data, y.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Axpy computes
 | 
			
		||||
//  y = alpha * x + y,
 | 
			
		||||
// where x and y are vectors, and alpha is a scalar.
 | 
			
		||||
func Axpy(n int, alpha complex128, x, y Vector) {
 | 
			
		||||
	cblas128.Zaxpy(n, alpha, x.Data, x.Inc, y.Data, y.Inc)
 | 
			
		||||
// Axpy will panic if the lengths of x and y do not match.
 | 
			
		||||
func Axpy(alpha complex128, x, y Vector) {
 | 
			
		||||
	if x.N != y.N {
 | 
			
		||||
		panic(badLength)
 | 
			
		||||
	}
 | 
			
		||||
	cblas128.Zaxpy(x.N, alpha, x.Data, x.Inc, y.Data, y.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Scal computes
 | 
			
		||||
@@ -184,11 +208,11 @@ func Axpy(n int, alpha complex128, x, y Vector) {
 | 
			
		||||
// where x is a vector, and alpha is a scalar.
 | 
			
		||||
//
 | 
			
		||||
// Scal will panic if the vector increment is negative.
 | 
			
		||||
func Scal(n int, alpha complex128, x Vector) {
 | 
			
		||||
func Scal(alpha complex128, x Vector) {
 | 
			
		||||
	if x.Inc < 0 {
 | 
			
		||||
		panic(negInc)
 | 
			
		||||
	}
 | 
			
		||||
	cblas128.Zscal(n, alpha, x.Data, x.Inc)
 | 
			
		||||
	cblas128.Zscal(x.N, alpha, x.Data, x.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Dscal computes
 | 
			
		||||
@@ -196,19 +220,19 @@ func Scal(n int, alpha complex128, x Vector) {
 | 
			
		||||
// where x is a vector, and alpha is a real scalar.
 | 
			
		||||
//
 | 
			
		||||
// Dscal will panic if the vector increment is negative.
 | 
			
		||||
func Dscal(n int, alpha float64, x Vector) {
 | 
			
		||||
func Dscal(alpha float64, x Vector) {
 | 
			
		||||
	if x.Inc < 0 {
 | 
			
		||||
		panic(negInc)
 | 
			
		||||
	}
 | 
			
		||||
	cblas128.Zdscal(n, alpha, x.Data, x.Inc)
 | 
			
		||||
	cblas128.Zdscal(x.N, alpha, x.Data, x.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Level 2
 | 
			
		||||
 | 
			
		||||
// Gemv computes
 | 
			
		||||
//  y = alpha * A * x + beta * y,   if t == blas.NoTrans,
 | 
			
		||||
//  y = alpha * A^T * x + beta * y, if t == blas.Trans,
 | 
			
		||||
//  y = alpha * A^H * x + beta * y, if t == blas.ConjTrans,
 | 
			
		||||
//  y = alpha * A * x + beta * y   if t == blas.NoTrans,
 | 
			
		||||
//  y = alpha * Aᵀ * x + beta * y  if t == blas.Trans,
 | 
			
		||||
//  y = alpha * Aᴴ * x + beta * y  if t == blas.ConjTrans,
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha and beta are
 | 
			
		||||
// scalars.
 | 
			
		||||
func Gemv(t blas.Transpose, alpha complex128, a General, x Vector, beta complex128, y Vector) {
 | 
			
		||||
@@ -216,9 +240,9 @@ func Gemv(t blas.Transpose, alpha complex128, a General, x Vector, beta complex1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Gbmv computes
 | 
			
		||||
//  y = alpha * A * x + beta * y,   if t == blas.NoTrans,
 | 
			
		||||
//  y = alpha * A^T * x + beta * y, if t == blas.Trans,
 | 
			
		||||
//  y = alpha * A^H * x + beta * y, if t == blas.ConjTrans,
 | 
			
		||||
//  y = alpha * A * x + beta * y   if t == blas.NoTrans,
 | 
			
		||||
//  y = alpha * Aᵀ * x + beta * y  if t == blas.Trans,
 | 
			
		||||
//  y = alpha * Aᴴ * x + beta * y  if t == blas.ConjTrans,
 | 
			
		||||
// where A is an m×n band matrix, x and y are vectors, and alpha and beta are
 | 
			
		||||
// scalars.
 | 
			
		||||
func Gbmv(t blas.Transpose, alpha complex128, a Band, x Vector, beta complex128, y Vector) {
 | 
			
		||||
@@ -226,36 +250,36 @@ func Gbmv(t blas.Transpose, alpha complex128, a Band, x Vector, beta complex128,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Trmv computes
 | 
			
		||||
//  x = A * x,   if t == blas.NoTrans,
 | 
			
		||||
//  x = A^T * x, if t == blas.Trans,
 | 
			
		||||
//  x = A^H * x, if t == blas.ConjTrans,
 | 
			
		||||
//  x = A * x   if t == blas.NoTrans,
 | 
			
		||||
//  x = Aᵀ * x  if t == blas.Trans,
 | 
			
		||||
//  x = Aᴴ * x  if t == blas.ConjTrans,
 | 
			
		||||
// where A is an n×n triangular matrix, and x is a vector.
 | 
			
		||||
func Trmv(t blas.Transpose, a Triangular, x Vector) {
 | 
			
		||||
	cblas128.Ztrmv(a.Uplo, t, a.Diag, a.N, a.Data, a.Stride, x.Data, x.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tbmv computes
 | 
			
		||||
//  x = A * x,   if t == blas.NoTrans,
 | 
			
		||||
//  x = A^T * x, if t == blas.Trans,
 | 
			
		||||
//  x = A^H * x, if t == blas.ConjTrans,
 | 
			
		||||
//  x = A * x   if t == blas.NoTrans,
 | 
			
		||||
//  x = Aᵀ * x  if t == blas.Trans,
 | 
			
		||||
//  x = Aᴴ * x  if t == blas.ConjTrans,
 | 
			
		||||
// where A is an n×n triangular band matrix, and x is a vector.
 | 
			
		||||
func Tbmv(t blas.Transpose, a TriangularBand, x Vector) {
 | 
			
		||||
	cblas128.Ztbmv(a.Uplo, t, a.Diag, a.N, a.K, a.Data, a.Stride, x.Data, x.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tpmv computes
 | 
			
		||||
//  x = A * x,   if t == blas.NoTrans,
 | 
			
		||||
//  x = A^T * x, if t == blas.Trans,
 | 
			
		||||
//  x = A^H * x, if t == blas.ConjTrans,
 | 
			
		||||
//  x = A * x   if t == blas.NoTrans,
 | 
			
		||||
//  x = Aᵀ * x  if t == blas.Trans,
 | 
			
		||||
//  x = Aᴴ * x  if t == blas.ConjTrans,
 | 
			
		||||
// where A is an n×n triangular matrix in packed format, and x is a vector.
 | 
			
		||||
func Tpmv(t blas.Transpose, a TriangularPacked, x Vector) {
 | 
			
		||||
	cblas128.Ztpmv(a.Uplo, t, a.Diag, a.N, a.Data, x.Data, x.Inc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Trsv solves
 | 
			
		||||
//  A * x = b,   if t == blas.NoTrans,
 | 
			
		||||
//  A^T * x = b, if t == blas.Trans,
 | 
			
		||||
//  A^H * x = b, if t == blas.ConjTrans,
 | 
			
		||||
//  A * x = b   if t == blas.NoTrans,
 | 
			
		||||
//  Aᵀ * x = b  if t == blas.Trans,
 | 
			
		||||
//  Aᴴ * x = b  if t == blas.ConjTrans,
 | 
			
		||||
// where A is an n×n triangular matrix and x is a vector.
 | 
			
		||||
//
 | 
			
		||||
// At entry to the function, x contains the values of b, and the result is
 | 
			
		||||
@@ -268,9 +292,9 @@ func Trsv(t blas.Transpose, a Triangular, x Vector) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tbsv solves
 | 
			
		||||
//  A * x = b,   if t == blas.NoTrans,
 | 
			
		||||
//  A^T * x = b, if t == blas.Trans,
 | 
			
		||||
//  A^H * x = b, if t == blas.ConjTrans,
 | 
			
		||||
//  A * x = b   if t == blas.NoTrans,
 | 
			
		||||
//  Aᵀ * x = b  if t == blas.Trans,
 | 
			
		||||
//  Aᴴ * x = b  if t == blas.ConjTrans,
 | 
			
		||||
// where A is an n×n triangular band matrix, and x is a vector.
 | 
			
		||||
//
 | 
			
		||||
// At entry to the function, x contains the values of b, and the result is
 | 
			
		||||
@@ -283,9 +307,9 @@ func Tbsv(t blas.Transpose, a TriangularBand, x Vector) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tpsv solves
 | 
			
		||||
//  A * x = b,   if t == blas.NoTrans,
 | 
			
		||||
//  A^T * x = b, if t == blas.Trans,
 | 
			
		||||
//  A^H * x = b, if t == blas.ConjTrans,
 | 
			
		||||
//  A * x = b   if t == blas.NoTrans,
 | 
			
		||||
//  Aᵀ * x = b  if t == blas.Trans,
 | 
			
		||||
//  Aᴴ * x = b  if t == blas.ConjTrans,
 | 
			
		||||
// where A is an n×n triangular matrix in packed format and x is a vector.
 | 
			
		||||
//
 | 
			
		||||
// At entry to the function, x contains the values of b, and the result is
 | 
			
		||||
@@ -322,28 +346,28 @@ func Hpmv(alpha complex128, a HermitianPacked, x Vector, beta complex128, y Vect
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Geru performs a rank-1 update
 | 
			
		||||
//  A += alpha * x * y^T,
 | 
			
		||||
//  A += alpha * x * yᵀ,
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha is a scalar.
 | 
			
		||||
func Geru(alpha complex128, x, y Vector, a General) {
 | 
			
		||||
	cblas128.Zgeru(a.Rows, a.Cols, alpha, x.Data, x.Inc, y.Data, y.Inc, a.Data, a.Stride)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Gerc performs a rank-1 update
 | 
			
		||||
//  A += alpha * x * y^H,
 | 
			
		||||
//  A += alpha * x * yᴴ,
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha is a scalar.
 | 
			
		||||
func Gerc(alpha complex128, x, y Vector, a General) {
 | 
			
		||||
	cblas128.Zgerc(a.Rows, a.Cols, alpha, x.Data, x.Inc, y.Data, y.Inc, a.Data, a.Stride)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Her performs a rank-1 update
 | 
			
		||||
//  A += alpha * x * y^T,
 | 
			
		||||
//  A += alpha * x * yᵀ,
 | 
			
		||||
// where A is an m×n Hermitian matrix, x and y are vectors, and alpha is a scalar.
 | 
			
		||||
func Her(alpha float64, x Vector, a Hermitian) {
 | 
			
		||||
	cblas128.Zher(a.Uplo, a.N, alpha, x.Data, x.Inc, a.Data, a.Stride)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Hpr performs a rank-1 update
 | 
			
		||||
//  A += alpha * x * x^H,
 | 
			
		||||
//  A += alpha * x * xᴴ,
 | 
			
		||||
// where A is an n×n Hermitian matrix in packed format, x is a vector, and
 | 
			
		||||
// alpha is a scalar.
 | 
			
		||||
func Hpr(alpha float64, x Vector, a HermitianPacked) {
 | 
			
		||||
@@ -351,14 +375,14 @@ func Hpr(alpha float64, x Vector, a HermitianPacked) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Her2 performs a rank-2 update
 | 
			
		||||
//  A += alpha * x * y^H + conj(alpha) * y * x^H,
 | 
			
		||||
//  A += alpha * x * yᴴ + conj(alpha) * y * xᴴ,
 | 
			
		||||
// where A is an n×n Hermitian matrix, x and y are vectors, and alpha is a scalar.
 | 
			
		||||
func Her2(alpha complex128, x, y Vector, a Hermitian) {
 | 
			
		||||
	cblas128.Zher2(a.Uplo, a.N, alpha, x.Data, x.Inc, y.Data, y.Inc, a.Data, a.Stride)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Hpr2 performs a rank-2 update
 | 
			
		||||
//  A += alpha * x * y^H + conj(alpha) * y * x^H,
 | 
			
		||||
//  A += alpha * x * yᴴ + conj(alpha) * y * xᴴ,
 | 
			
		||||
// where A is an n×n Hermitian matrix in packed format, x and y are vectors,
 | 
			
		||||
// and alpha is a scalar.
 | 
			
		||||
func Hpr2(alpha complex128, x, y Vector, a HermitianPacked) {
 | 
			
		||||
@@ -387,8 +411,8 @@ func Gemm(tA, tB blas.Transpose, alpha complex128, a, b General, beta complex128
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Symm performs
 | 
			
		||||
//  C = alpha * A * B + beta * C, if s == blas.Left,
 | 
			
		||||
//  C = alpha * B * A + beta * C, if s == blas.Right,
 | 
			
		||||
//  C = alpha * A * B + beta * C  if s == blas.Left,
 | 
			
		||||
//  C = alpha * B * A + beta * C  if s == blas.Right,
 | 
			
		||||
// where A is an n×n or m×m symmetric matrix, B and C are m×n matrices, and
 | 
			
		||||
// alpha and beta are scalars.
 | 
			
		||||
func Symm(s blas.Side, alpha complex128, a Symmetric, b General, beta complex128, c General) {
 | 
			
		||||
@@ -402,8 +426,8 @@ func Symm(s blas.Side, alpha complex128, a Symmetric, b General, beta complex128
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Syrk performs a symmetric rank-k update
 | 
			
		||||
//  C = alpha * A * A^T + beta * C, if t == blas.NoTrans,
 | 
			
		||||
//  C = alpha * A^T * A + beta * C, if t == blas.Trans,
 | 
			
		||||
//  C = alpha * A * Aᵀ + beta * C  if t == blas.NoTrans,
 | 
			
		||||
//  C = alpha * Aᵀ * A + beta * C  if t == blas.Trans,
 | 
			
		||||
// where C is an n×n symmetric matrix, A is an n×k matrix if t == blas.NoTrans
 | 
			
		||||
// and a k×n matrix otherwise, and alpha and beta are scalars.
 | 
			
		||||
func Syrk(t blas.Transpose, alpha complex128, a General, beta complex128, c Symmetric) {
 | 
			
		||||
@@ -417,8 +441,8 @@ func Syrk(t blas.Transpose, alpha complex128, a General, beta complex128, c Symm
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Syr2k performs a symmetric rank-2k update
 | 
			
		||||
//  C = alpha * A * B^T + alpha * B * A^T + beta * C, if t == blas.NoTrans,
 | 
			
		||||
//  C = alpha * A^T * B + alpha * B^T * A + beta * C, if t == blas.Trans,
 | 
			
		||||
//  C = alpha * A * Bᵀ + alpha * B * Aᵀ + beta * C  if t == blas.NoTrans,
 | 
			
		||||
//  C = alpha * Aᵀ * B + alpha * Bᵀ * A + beta * C  if t == blas.Trans,
 | 
			
		||||
// where C is an n×n symmetric matrix, A and B are n×k matrices if
 | 
			
		||||
// t == blas.NoTrans and k×n otherwise, and alpha and beta are scalars.
 | 
			
		||||
func Syr2k(t blas.Transpose, alpha complex128, a, b General, beta complex128, c Symmetric) {
 | 
			
		||||
@@ -432,12 +456,12 @@ func Syr2k(t blas.Transpose, alpha complex128, a, b General, beta complex128, c
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Trmm performs
 | 
			
		||||
//  B = alpha * A * B,   if tA == blas.NoTrans and s == blas.Left,
 | 
			
		||||
//  B = alpha * A^T * B, if tA == blas.Trans and s == blas.Left,
 | 
			
		||||
//  B = alpha * A^H * B, if tA == blas.ConjTrans and s == blas.Left,
 | 
			
		||||
//  B = alpha * B * A,   if tA == blas.NoTrans and s == blas.Right,
 | 
			
		||||
//  B = alpha * B * A^T, if tA == blas.Trans and s == blas.Right,
 | 
			
		||||
//  B = alpha * B * A^H, if tA == blas.ConjTrans and s == blas.Right,
 | 
			
		||||
//  B = alpha * A * B   if tA == blas.NoTrans and s == blas.Left,
 | 
			
		||||
//  B = alpha * Aᵀ * B  if tA == blas.Trans and s == blas.Left,
 | 
			
		||||
//  B = alpha * Aᴴ * B  if tA == blas.ConjTrans and s == blas.Left,
 | 
			
		||||
//  B = alpha * B * A   if tA == blas.NoTrans and s == blas.Right,
 | 
			
		||||
//  B = alpha * B * Aᵀ  if tA == blas.Trans and s == blas.Right,
 | 
			
		||||
//  B = alpha * B * Aᴴ  if tA == blas.ConjTrans and s == blas.Right,
 | 
			
		||||
// where A is an n×n or m×m triangular matrix, B is an m×n matrix, and alpha is
 | 
			
		||||
// a scalar.
 | 
			
		||||
func Trmm(s blas.Side, tA blas.Transpose, alpha complex128, a Triangular, b General) {
 | 
			
		||||
@@ -445,12 +469,12 @@ func Trmm(s blas.Side, tA blas.Transpose, alpha complex128, a Triangular, b Gene
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Trsm solves
 | 
			
		||||
//  A * X = alpha * B,   if tA == blas.NoTrans and s == blas.Left,
 | 
			
		||||
//  A^T * X = alpha * B, if tA == blas.Trans and s == blas.Left,
 | 
			
		||||
//  A^H * X = alpha * B, if tA == blas.ConjTrans and s == blas.Left,
 | 
			
		||||
//  X * A = alpha * B,   if tA == blas.NoTrans and s == blas.Right,
 | 
			
		||||
//  X * A^T = alpha * B, if tA == blas.Trans and s == blas.Right,
 | 
			
		||||
//  X * A^H = alpha * B, if tA == blas.ConjTrans and s == blas.Right,
 | 
			
		||||
//  A * X = alpha * B   if tA == blas.NoTrans and s == blas.Left,
 | 
			
		||||
//  Aᵀ * X = alpha * B  if tA == blas.Trans and s == blas.Left,
 | 
			
		||||
//  Aᴴ * X = alpha * B  if tA == blas.ConjTrans and s == blas.Left,
 | 
			
		||||
//  X * A = alpha * B   if tA == blas.NoTrans and s == blas.Right,
 | 
			
		||||
//  X * Aᵀ = alpha * B  if tA == blas.Trans and s == blas.Right,
 | 
			
		||||
//  X * Aᴴ = alpha * B  if tA == blas.ConjTrans and s == blas.Right,
 | 
			
		||||
// where A is an n×n or m×m triangular matrix, X and B are m×n matrices, and
 | 
			
		||||
// alpha is a scalar.
 | 
			
		||||
//
 | 
			
		||||
@@ -463,8 +487,8 @@ func Trsm(s blas.Side, tA blas.Transpose, alpha complex128, a Triangular, b Gene
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Hemm performs
 | 
			
		||||
//  C = alpha * A * B + beta * C, if s == blas.Left,
 | 
			
		||||
//  C = alpha * B * A + beta * C, if s == blas.Right,
 | 
			
		||||
//  C = alpha * A * B + beta * C  if s == blas.Left,
 | 
			
		||||
//  C = alpha * B * A + beta * C  if s == blas.Right,
 | 
			
		||||
// where A is an n×n or m×m Hermitian matrix, B and C are m×n matrices, and
 | 
			
		||||
// alpha and beta are scalars.
 | 
			
		||||
func Hemm(s blas.Side, alpha complex128, a Hermitian, b General, beta complex128, c General) {
 | 
			
		||||
@@ -478,8 +502,8 @@ func Hemm(s blas.Side, alpha complex128, a Hermitian, b General, beta complex128
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Herk performs the Hermitian rank-k update
 | 
			
		||||
//  C = alpha * A * A^H + beta*C, if t == blas.NoTrans,
 | 
			
		||||
//  C = alpha * A^H * A + beta*C, if t == blas.ConjTrans,
 | 
			
		||||
//  C = alpha * A * Aᴴ + beta*C  if t == blas.NoTrans,
 | 
			
		||||
//  C = alpha * Aᴴ * A + beta*C  if t == blas.ConjTrans,
 | 
			
		||||
// where C is an n×n Hermitian matrix, A is an n×k matrix if t == blas.NoTrans
 | 
			
		||||
// and a k×n matrix otherwise, and alpha and beta are scalars.
 | 
			
		||||
func Herk(t blas.Transpose, alpha float64, a General, beta float64, c Hermitian) {
 | 
			
		||||
@@ -493,8 +517,8 @@ func Herk(t blas.Transpose, alpha float64, a General, beta float64, c Hermitian)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Her2k performs the Hermitian rank-2k update
 | 
			
		||||
//  C = alpha * A * B^H + conj(alpha) * B * A^H + beta * C, if t == blas.NoTrans,
 | 
			
		||||
//  C = alpha * A^H * B + conj(alpha) * B^H * A + beta * C, if t == blas.ConjTrans,
 | 
			
		||||
//  C = alpha * A * Bᴴ + conj(alpha) * B * Aᴴ + beta * C  if t == blas.NoTrans,
 | 
			
		||||
//  C = alpha * Aᴴ * B + conj(alpha) * Bᴴ * A + beta * C  if t == blas.ConjTrans,
 | 
			
		||||
// where C is an n×n Hermitian matrix, A and B are n×k matrices if t == NoTrans
 | 
			
		||||
// and k×n matrices otherwise, and alpha and beta are scalars.
 | 
			
		||||
func Her2k(t blas.Transpose, alpha complex128, a, b General, beta float64, c Hermitian) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/blas/cblas128/conv.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/blas/cblas128/conv.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -171,7 +171,7 @@ func (t Band) From(a BandCols) {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// TriangularBandCols represents a symmetric matrix using the band column-major storage scheme.
 | 
			
		||||
// TriangularBandCols represents a triangular matrix using the band column-major storage scheme.
 | 
			
		||||
type TriangularBandCols TriangularBand
 | 
			
		||||
 | 
			
		||||
// From fills the receiver with elements from a. The receiver
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/dgemm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/dgemm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -14,9 +14,9 @@ import (
 | 
			
		||||
 | 
			
		||||
// Dgemm performs one of the matrix-matrix operations
 | 
			
		||||
//  C = alpha * A * B + beta * C
 | 
			
		||||
//  C = alpha * A^T * B + beta * C
 | 
			
		||||
//  C = alpha * A * B^T + beta * C
 | 
			
		||||
//  C = alpha * A^T * B^T + beta * C
 | 
			
		||||
//  C = alpha * Aᵀ * B + beta * C
 | 
			
		||||
//  C = alpha * A * Bᵀ + beta * C
 | 
			
		||||
//  C = alpha * Aᵀ * Bᵀ + beta * C
 | 
			
		||||
// where A is an m×k or k×m dense matrix, B is an n×k or k×n dense matrix, C is
 | 
			
		||||
// an m×n matrix, and alpha and beta are scalars. tA and tB specify whether A or
 | 
			
		||||
// B are transposed.
 | 
			
		||||
@@ -134,9 +134,9 @@ func dgemmParallel(aTrans, bTrans bool, m, n, k int, a []float64, lda int, b []f
 | 
			
		||||
	// In all cases, there is one dimension for each matrix along which
 | 
			
		||||
	// C must be updated sequentially.
 | 
			
		||||
	// Cij = \sum_k Aik Bki,	(A * B)
 | 
			
		||||
	// Cij = \sum_k Aki Bkj,	(A^T * B)
 | 
			
		||||
	// Cij = \sum_k Aik Bjk,	(A * B^T)
 | 
			
		||||
	// Cij = \sum_k Aki Bjk,	(A^T * B^T)
 | 
			
		||||
	// Cij = \sum_k Aki Bkj,	(Aᵀ * B)
 | 
			
		||||
	// Cij = \sum_k Aik Bjk,	(A * Bᵀ)
 | 
			
		||||
	// Cij = \sum_k Aki Bjk,	(Aᵀ * Bᵀ)
 | 
			
		||||
	//
 | 
			
		||||
	// This code computes one {i, j} block sequentially along the k dimension,
 | 
			
		||||
	// and computes all of the {i, j} blocks concurrently. This
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/gemv.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/gemv.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -14,7 +14,7 @@ import (
 | 
			
		||||
 | 
			
		||||
// Dgemv computes
 | 
			
		||||
//  y = alpha * A * x + beta * y   if tA = blas.NoTrans
 | 
			
		||||
//  y = alpha * A^T * x + beta * y  if tA = blas.Trans or blas.ConjTrans
 | 
			
		||||
//  y = alpha * Aᵀ * x + beta * y  if tA = blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha and beta are scalars.
 | 
			
		||||
func (Implementation) Dgemv(tA blas.Transpose, m, n int, alpha float64, a []float64, lda int, x []float64, incX int, beta float64, y []float64, incY int) {
 | 
			
		||||
	if tA != blas.NoTrans && tA != blas.Trans && tA != blas.ConjTrans {
 | 
			
		||||
@@ -84,7 +84,7 @@ func (Implementation) Dgemv(tA blas.Transpose, m, n int, alpha float64, a []floa
 | 
			
		||||
 | 
			
		||||
// Sgemv computes
 | 
			
		||||
//  y = alpha * A * x + beta * y   if tA = blas.NoTrans
 | 
			
		||||
//  y = alpha * A^T * x + beta * y  if tA = blas.Trans or blas.ConjTrans
 | 
			
		||||
//  y = alpha * Aᵀ * x + beta * y  if tA = blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha and beta are scalars.
 | 
			
		||||
//
 | 
			
		||||
// Float32 implementations are autogenerated and not directly tested.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level1cmplx128.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level1cmplx128.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -240,7 +240,7 @@ func (Implementation) Zcopy(n int, x []complex128, incX int, y []complex128, inc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Zdotc computes the dot product
 | 
			
		||||
//  x^H · y
 | 
			
		||||
//  xᴴ · y
 | 
			
		||||
// of two complex vectors x and y.
 | 
			
		||||
func (Implementation) Zdotc(n int, x []complex128, incX int, y []complex128, incY int) complex128 {
 | 
			
		||||
	if incX == 0 {
 | 
			
		||||
@@ -281,7 +281,7 @@ func (Implementation) Zdotc(n int, x []complex128, incX int, y []complex128, inc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Zdotu computes the dot product
 | 
			
		||||
//  x^T · y
 | 
			
		||||
//  xᵀ · y
 | 
			
		||||
// of two complex vectors x and y.
 | 
			
		||||
func (Implementation) Zdotu(n int, x []complex128, incX int, y []complex128, incY int) complex128 {
 | 
			
		||||
	if incX == 0 {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level1cmplx64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level1cmplx64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -252,7 +252,7 @@ func (Implementation) Ccopy(n int, x []complex64, incX int, y []complex64, incY
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Cdotc computes the dot product
 | 
			
		||||
//  x^H · y
 | 
			
		||||
//  xᴴ · y
 | 
			
		||||
// of two complex vectors x and y.
 | 
			
		||||
//
 | 
			
		||||
// Complex64 implementations are autogenerated and not directly tested.
 | 
			
		||||
@@ -295,7 +295,7 @@ func (Implementation) Cdotc(n int, x []complex64, incX int, y []complex64, incY
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Cdotu computes the dot product
 | 
			
		||||
//  x^T · y
 | 
			
		||||
//  xᵀ · y
 | 
			
		||||
// of two complex vectors x and y.
 | 
			
		||||
//
 | 
			
		||||
// Complex64 implementations are autogenerated and not directly tested.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										64
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level2cmplx128.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										64
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level2cmplx128.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -15,8 +15,8 @@ var _ blas.Complex128Level2 = Implementation{}
 | 
			
		||||
 | 
			
		||||
// Zgbmv performs one of the matrix-vector operations
 | 
			
		||||
//  y = alpha * A * x + beta * y   if trans = blas.NoTrans
 | 
			
		||||
//  y = alpha * A^T * x + beta * y  if trans = blas.Trans
 | 
			
		||||
//  y = alpha * A^H * x + beta * y  if trans = blas.ConjTrans
 | 
			
		||||
//  y = alpha * Aᵀ * x + beta * y  if trans = blas.Trans
 | 
			
		||||
//  y = alpha * Aᴴ * x + beta * y  if trans = blas.ConjTrans
 | 
			
		||||
// where alpha and beta are scalars, x and y are vectors, and A is an m×n band matrix
 | 
			
		||||
// with kL sub-diagonals and kU super-diagonals.
 | 
			
		||||
func (Implementation) Zgbmv(trans blas.Transpose, m, n, kL, kU int, alpha complex128, a []complex128, lda int, x []complex128, incX int, beta complex128, y []complex128, incY int) {
 | 
			
		||||
@@ -210,8 +210,8 @@ func (Implementation) Zgbmv(trans blas.Transpose, m, n, kL, kU int, alpha comple
 | 
			
		||||
 | 
			
		||||
// Zgemv performs one of the matrix-vector operations
 | 
			
		||||
//  y = alpha * A * x + beta * y   if trans = blas.NoTrans
 | 
			
		||||
//  y = alpha * A^T * x + beta * y  if trans = blas.Trans
 | 
			
		||||
//  y = alpha * A^H * x + beta * y  if trans = blas.ConjTrans
 | 
			
		||||
//  y = alpha * Aᵀ * x + beta * y  if trans = blas.Trans
 | 
			
		||||
//  y = alpha * Aᴴ * x + beta * y  if trans = blas.ConjTrans
 | 
			
		||||
// where alpha and beta are scalars, x and y are vectors, and A is an m×n dense matrix.
 | 
			
		||||
func (Implementation) Zgemv(trans blas.Transpose, m, n int, alpha complex128, a []complex128, lda int, x []complex128, incX int, beta complex128, y []complex128, incY int) {
 | 
			
		||||
	switch trans {
 | 
			
		||||
@@ -322,7 +322,7 @@ func (Implementation) Zgemv(trans blas.Transpose, m, n int, alpha complex128, a
 | 
			
		||||
		return
 | 
			
		||||
 | 
			
		||||
	case blas.Trans:
 | 
			
		||||
		// Form y = alpha*A^T*x + y.
 | 
			
		||||
		// Form y = alpha*Aᵀ*x + y.
 | 
			
		||||
		ix := kx
 | 
			
		||||
		if incY == 1 {
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
@@ -338,7 +338,7 @@ func (Implementation) Zgemv(trans blas.Transpose, m, n int, alpha complex128, a
 | 
			
		||||
		return
 | 
			
		||||
 | 
			
		||||
	case blas.ConjTrans:
 | 
			
		||||
		// Form y = alpha*A^H*x + y.
 | 
			
		||||
		// Form y = alpha*Aᴴ*x + y.
 | 
			
		||||
		ix := kx
 | 
			
		||||
		if incY == 1 {
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
@@ -364,7 +364,7 @@ func (Implementation) Zgemv(trans blas.Transpose, m, n int, alpha complex128, a
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Zgerc performs the rank-one operation
 | 
			
		||||
//  A += alpha * x * y^H
 | 
			
		||||
//  A += alpha * x * yᴴ
 | 
			
		||||
// where A is an m×n dense matrix, alpha is a scalar, x is an m element vector,
 | 
			
		||||
// and y is an n element vector.
 | 
			
		||||
func (Implementation) Zgerc(m, n int, alpha complex128, x []complex128, incX int, y []complex128, incY int, a []complex128, lda int) {
 | 
			
		||||
@@ -422,7 +422,7 @@ func (Implementation) Zgerc(m, n int, alpha complex128, x []complex128, incX int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Zgeru performs the rank-one operation
 | 
			
		||||
//  A += alpha * x * y^T
 | 
			
		||||
//  A += alpha * x * yᵀ
 | 
			
		||||
// where A is an m×n dense matrix, alpha is a scalar, x is an m element vector,
 | 
			
		||||
// and y is an n element vector.
 | 
			
		||||
func (Implementation) Zgeru(m, n int, alpha complex128, x []complex128, incX int, y []complex128, incY int, a []complex128, lda int) {
 | 
			
		||||
@@ -822,7 +822,7 @@ func (Implementation) Zhemv(uplo blas.Uplo, n int, alpha complex128, a []complex
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Zher performs the Hermitian rank-one operation
 | 
			
		||||
//  A += alpha * x * x^H
 | 
			
		||||
//  A += alpha * x * xᴴ
 | 
			
		||||
// where A is an n×n Hermitian matrix, alpha is a real scalar, and x is an n
 | 
			
		||||
// element vector. On entry, the imaginary parts of the diagonal elements of A
 | 
			
		||||
// are ignored and assumed to be zero, on return they will be set to zero.
 | 
			
		||||
@@ -944,7 +944,7 @@ func (Implementation) Zher(uplo blas.Uplo, n int, alpha float64, x []complex128,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Zher2 performs the Hermitian rank-two operation
 | 
			
		||||
//  A += alpha * x * y^H + conj(alpha) * y * x^H
 | 
			
		||||
//  A += alpha * x * yᴴ + conj(alpha) * y * xᴴ
 | 
			
		||||
// where alpha is a scalar, x and y are n element vectors and A is an n×n
 | 
			
		||||
// Hermitian matrix. On entry, the imaginary parts of the diagonal elements are
 | 
			
		||||
// ignored and assumed to be zero. On return they will be set to zero.
 | 
			
		||||
@@ -1248,7 +1248,7 @@ func (Implementation) Zhpmv(uplo blas.Uplo, n int, alpha complex128, ap []comple
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Zhpr performs the Hermitian rank-1 operation
 | 
			
		||||
//  A += alpha * x * x^H
 | 
			
		||||
//  A += alpha * x * xᴴ
 | 
			
		||||
// where alpha is a real scalar, x is a vector, and A is an n×n hermitian matrix
 | 
			
		||||
// in packed form. On entry, the imaginary parts of the diagonal elements are
 | 
			
		||||
// assumed to be zero, and on return they are set to zero.
 | 
			
		||||
@@ -1382,7 +1382,7 @@ func (Implementation) Zhpr(uplo blas.Uplo, n int, alpha float64, x []complex128,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Zhpr2 performs the Hermitian rank-2 operation
 | 
			
		||||
//  A += alpha * x * y^H + conj(alpha) * y * x^H
 | 
			
		||||
//  A += alpha * x * yᴴ + conj(alpha) * y * xᴴ
 | 
			
		||||
// where alpha is a complex scalar, x and y are n element vectors, and A is an
 | 
			
		||||
// n×n Hermitian matrix, supplied in packed form. On entry, the imaginary parts
 | 
			
		||||
// of the diagonal elements are assumed to be zero, and on return they are set to zero.
 | 
			
		||||
@@ -1530,8 +1530,8 @@ func (Implementation) Zhpr2(uplo blas.Uplo, n int, alpha complex128, x []complex
 | 
			
		||||
 | 
			
		||||
// Ztbmv performs one of the matrix-vector operations
 | 
			
		||||
//  x = A * x   if trans = blas.NoTrans
 | 
			
		||||
//  x = A^T * x  if trans = blas.Trans
 | 
			
		||||
//  x = A^H * x  if trans = blas.ConjTrans
 | 
			
		||||
//  x = Aᵀ * x  if trans = blas.Trans
 | 
			
		||||
//  x = Aᴴ * x  if trans = blas.ConjTrans
 | 
			
		||||
// where x is an n element vector and A is an n×n triangular band matrix, with
 | 
			
		||||
// (k+1) diagonals.
 | 
			
		||||
func (Implementation) Ztbmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag, n, k int, a []complex128, lda int, x []complex128, incX int) {
 | 
			
		||||
@@ -1766,8 +1766,8 @@ func (Implementation) Ztbmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
 | 
			
		||||
// Ztbsv solves one of the systems of equations
 | 
			
		||||
//  A * x = b   if trans == blas.NoTrans
 | 
			
		||||
//  A^T * x = b  if trans == blas.Trans
 | 
			
		||||
//  A^H * x = b  if trans == blas.ConjTrans
 | 
			
		||||
//  Aᵀ * x = b  if trans == blas.Trans
 | 
			
		||||
//  Aᴴ * x = b  if trans == blas.ConjTrans
 | 
			
		||||
// where b and x are n element vectors and A is an n×n triangular band matrix
 | 
			
		||||
// with (k+1) diagonals.
 | 
			
		||||
//
 | 
			
		||||
@@ -2008,8 +2008,8 @@ func (Implementation) Ztbsv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
 | 
			
		||||
// Ztpmv performs one of the matrix-vector operations
 | 
			
		||||
//  x = A * x   if trans = blas.NoTrans
 | 
			
		||||
//  x = A^T * x  if trans = blas.Trans
 | 
			
		||||
//  x = A^H * x  if trans = blas.ConjTrans
 | 
			
		||||
//  x = Aᵀ * x  if trans = blas.Trans
 | 
			
		||||
//  x = Aᴴ * x  if trans = blas.ConjTrans
 | 
			
		||||
// where x is an n element vector and A is an n×n triangular matrix, supplied in
 | 
			
		||||
// packed form.
 | 
			
		||||
func (Implementation) Ztpmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag, n int, ap []complex128, x []complex128, incX int) {
 | 
			
		||||
@@ -2116,7 +2116,7 @@ func (Implementation) Ztpmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if trans == blas.Trans {
 | 
			
		||||
		// Form x = A^T*x.
 | 
			
		||||
		// Form x = Aᵀ*x.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			// kk points to the current diagonal element in ap.
 | 
			
		||||
			kk := n*(n+1)/2 - 1
 | 
			
		||||
@@ -2176,7 +2176,7 @@ func (Implementation) Ztpmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Form x = A^H*x.
 | 
			
		||||
	// Form x = Aᴴ*x.
 | 
			
		||||
	if uplo == blas.Upper {
 | 
			
		||||
		// kk points to the current diagonal element in ap.
 | 
			
		||||
		kk := n*(n+1)/2 - 1
 | 
			
		||||
@@ -2246,8 +2246,8 @@ func (Implementation) Ztpmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
 | 
			
		||||
// Ztpsv solves one of the systems of equations
 | 
			
		||||
//  A * x = b   if trans == blas.NoTrans
 | 
			
		||||
//  A^T * x = b  if trans == blas.Trans
 | 
			
		||||
//  A^H * x = b  if trans == blas.ConjTrans
 | 
			
		||||
//  Aᵀ * x = b  if trans == blas.Trans
 | 
			
		||||
//  Aᴴ * x = b  if trans == blas.ConjTrans
 | 
			
		||||
// where b and x are n element vectors and A is an n×n triangular matrix in
 | 
			
		||||
// packed form.
 | 
			
		||||
//
 | 
			
		||||
@@ -2359,7 +2359,7 @@ func (Implementation) Ztpsv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if trans == blas.Trans {
 | 
			
		||||
		// Form x = inv(A^T)*x.
 | 
			
		||||
		// Form x = inv(Aᵀ)*x.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			kk := 0
 | 
			
		||||
			if incX == 1 {
 | 
			
		||||
@@ -2414,7 +2414,7 @@ func (Implementation) Ztpsv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Form x = inv(A^H)*x.
 | 
			
		||||
	// Form x = inv(Aᴴ)*x.
 | 
			
		||||
	if uplo == blas.Upper {
 | 
			
		||||
		kk := 0
 | 
			
		||||
		if incX == 1 {
 | 
			
		||||
@@ -2482,8 +2482,8 @@ func (Implementation) Ztpsv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
 | 
			
		||||
// Ztrmv performs one of the matrix-vector operations
 | 
			
		||||
//  x = A * x   if trans = blas.NoTrans
 | 
			
		||||
//  x = A^T * x  if trans = blas.Trans
 | 
			
		||||
//  x = A^H * x  if trans = blas.ConjTrans
 | 
			
		||||
//  x = Aᵀ * x  if trans = blas.Trans
 | 
			
		||||
//  x = Aᴴ * x  if trans = blas.ConjTrans
 | 
			
		||||
// where x is a vector, and A is an n×n triangular matrix.
 | 
			
		||||
func (Implementation) Ztrmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag, n int, a []complex128, lda int, x []complex128, incX int) {
 | 
			
		||||
	switch trans {
 | 
			
		||||
@@ -2583,7 +2583,7 @@ func (Implementation) Ztrmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if trans == blas.Trans {
 | 
			
		||||
		// Form x = A^T*x.
 | 
			
		||||
		// Form x = Aᵀ*x.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			if incX == 1 {
 | 
			
		||||
				for i := n - 1; i >= 0; i-- {
 | 
			
		||||
@@ -2634,7 +2634,7 @@ func (Implementation) Ztrmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Form x = A^H*x.
 | 
			
		||||
	// Form x = Aᴴ*x.
 | 
			
		||||
	if uplo == blas.Upper {
 | 
			
		||||
		if incX == 1 {
 | 
			
		||||
			for i := n - 1; i >= 0; i-- {
 | 
			
		||||
@@ -2690,8 +2690,8 @@ func (Implementation) Ztrmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
 | 
			
		||||
// Ztrsv solves one of the systems of equations
 | 
			
		||||
//  A * x = b   if trans == blas.NoTrans
 | 
			
		||||
//  A^T * x = b  if trans == blas.Trans
 | 
			
		||||
//  A^H * x = b  if trans == blas.ConjTrans
 | 
			
		||||
//  Aᵀ * x = b  if trans == blas.Trans
 | 
			
		||||
//  Aᴴ * x = b  if trans == blas.ConjTrans
 | 
			
		||||
// where b and x are n element vectors and A is an n×n triangular matrix.
 | 
			
		||||
//
 | 
			
		||||
// On entry, x contains the values of b, and the solution is
 | 
			
		||||
@@ -2799,7 +2799,7 @@ func (Implementation) Ztrsv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if trans == blas.Trans {
 | 
			
		||||
		// Form x = inv(A^T)*x.
 | 
			
		||||
		// Form x = inv(Aᵀ)*x.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			if incX == 1 {
 | 
			
		||||
				for j := 0; j < n; j++ {
 | 
			
		||||
@@ -2849,7 +2849,7 @@ func (Implementation) Ztrsv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Form x = inv(A^H)*x.
 | 
			
		||||
	// Form x = inv(Aᴴ)*x.
 | 
			
		||||
	if uplo == blas.Upper {
 | 
			
		||||
		if incX == 1 {
 | 
			
		||||
			for j := 0; j < n; j++ {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										64
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level2cmplx64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										64
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level2cmplx64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -17,8 +17,8 @@ var _ blas.Complex64Level2 = Implementation{}
 | 
			
		||||
 | 
			
		||||
// Cgbmv performs one of the matrix-vector operations
 | 
			
		||||
//  y = alpha * A * x + beta * y   if trans = blas.NoTrans
 | 
			
		||||
//  y = alpha * A^T * x + beta * y  if trans = blas.Trans
 | 
			
		||||
//  y = alpha * A^H * x + beta * y  if trans = blas.ConjTrans
 | 
			
		||||
//  y = alpha * Aᵀ * x + beta * y  if trans = blas.Trans
 | 
			
		||||
//  y = alpha * Aᴴ * x + beta * y  if trans = blas.ConjTrans
 | 
			
		||||
// where alpha and beta are scalars, x and y are vectors, and A is an m×n band matrix
 | 
			
		||||
// with kL sub-diagonals and kU super-diagonals.
 | 
			
		||||
//
 | 
			
		||||
@@ -214,8 +214,8 @@ func (Implementation) Cgbmv(trans blas.Transpose, m, n, kL, kU int, alpha comple
 | 
			
		||||
 | 
			
		||||
// Cgemv performs one of the matrix-vector operations
 | 
			
		||||
//  y = alpha * A * x + beta * y   if trans = blas.NoTrans
 | 
			
		||||
//  y = alpha * A^T * x + beta * y  if trans = blas.Trans
 | 
			
		||||
//  y = alpha * A^H * x + beta * y  if trans = blas.ConjTrans
 | 
			
		||||
//  y = alpha * Aᵀ * x + beta * y  if trans = blas.Trans
 | 
			
		||||
//  y = alpha * Aᴴ * x + beta * y  if trans = blas.ConjTrans
 | 
			
		||||
// where alpha and beta are scalars, x and y are vectors, and A is an m×n dense matrix.
 | 
			
		||||
//
 | 
			
		||||
// Complex64 implementations are autogenerated and not directly tested.
 | 
			
		||||
@@ -328,7 +328,7 @@ func (Implementation) Cgemv(trans blas.Transpose, m, n int, alpha complex64, a [
 | 
			
		||||
		return
 | 
			
		||||
 | 
			
		||||
	case blas.Trans:
 | 
			
		||||
		// Form y = alpha*A^T*x + y.
 | 
			
		||||
		// Form y = alpha*Aᵀ*x + y.
 | 
			
		||||
		ix := kx
 | 
			
		||||
		if incY == 1 {
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
@@ -344,7 +344,7 @@ func (Implementation) Cgemv(trans blas.Transpose, m, n int, alpha complex64, a [
 | 
			
		||||
		return
 | 
			
		||||
 | 
			
		||||
	case blas.ConjTrans:
 | 
			
		||||
		// Form y = alpha*A^H*x + y.
 | 
			
		||||
		// Form y = alpha*Aᴴ*x + y.
 | 
			
		||||
		ix := kx
 | 
			
		||||
		if incY == 1 {
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
@@ -370,7 +370,7 @@ func (Implementation) Cgemv(trans blas.Transpose, m, n int, alpha complex64, a [
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Cgerc performs the rank-one operation
 | 
			
		||||
//  A += alpha * x * y^H
 | 
			
		||||
//  A += alpha * x * yᴴ
 | 
			
		||||
// where A is an m×n dense matrix, alpha is a scalar, x is an m element vector,
 | 
			
		||||
// and y is an n element vector.
 | 
			
		||||
//
 | 
			
		||||
@@ -430,7 +430,7 @@ func (Implementation) Cgerc(m, n int, alpha complex64, x []complex64, incX int,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Cgeru performs the rank-one operation
 | 
			
		||||
//  A += alpha * x * y^T
 | 
			
		||||
//  A += alpha * x * yᵀ
 | 
			
		||||
// where A is an m×n dense matrix, alpha is a scalar, x is an m element vector,
 | 
			
		||||
// and y is an n element vector.
 | 
			
		||||
//
 | 
			
		||||
@@ -836,7 +836,7 @@ func (Implementation) Chemv(uplo blas.Uplo, n int, alpha complex64, a []complex6
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Cher performs the Hermitian rank-one operation
 | 
			
		||||
//  A += alpha * x * x^H
 | 
			
		||||
//  A += alpha * x * xᴴ
 | 
			
		||||
// where A is an n×n Hermitian matrix, alpha is a real scalar, and x is an n
 | 
			
		||||
// element vector. On entry, the imaginary parts of the diagonal elements of A
 | 
			
		||||
// are ignored and assumed to be zero, on return they will be set to zero.
 | 
			
		||||
@@ -960,7 +960,7 @@ func (Implementation) Cher(uplo blas.Uplo, n int, alpha float32, x []complex64,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Cher2 performs the Hermitian rank-two operation
 | 
			
		||||
//  A += alpha * x * y^H + conj(alpha) * y * x^H
 | 
			
		||||
//  A += alpha * x * yᴴ + conj(alpha) * y * xᴴ
 | 
			
		||||
// where alpha is a scalar, x and y are n element vectors and A is an n×n
 | 
			
		||||
// Hermitian matrix. On entry, the imaginary parts of the diagonal elements are
 | 
			
		||||
// ignored and assumed to be zero. On return they will be set to zero.
 | 
			
		||||
@@ -1268,7 +1268,7 @@ func (Implementation) Chpmv(uplo blas.Uplo, n int, alpha complex64, ap []complex
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Chpr performs the Hermitian rank-1 operation
 | 
			
		||||
//  A += alpha * x * x^H
 | 
			
		||||
//  A += alpha * x * xᴴ
 | 
			
		||||
// where alpha is a real scalar, x is a vector, and A is an n×n hermitian matrix
 | 
			
		||||
// in packed form. On entry, the imaginary parts of the diagonal elements are
 | 
			
		||||
// assumed to be zero, and on return they are set to zero.
 | 
			
		||||
@@ -1404,7 +1404,7 @@ func (Implementation) Chpr(uplo blas.Uplo, n int, alpha float32, x []complex64,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Chpr2 performs the Hermitian rank-2 operation
 | 
			
		||||
//  A += alpha * x * y^H + conj(alpha) * y * x^H
 | 
			
		||||
//  A += alpha * x * yᴴ + conj(alpha) * y * xᴴ
 | 
			
		||||
// where alpha is a complex scalar, x and y are n element vectors, and A is an
 | 
			
		||||
// n×n Hermitian matrix, supplied in packed form. On entry, the imaginary parts
 | 
			
		||||
// of the diagonal elements are assumed to be zero, and on return they are set to zero.
 | 
			
		||||
@@ -1554,8 +1554,8 @@ func (Implementation) Chpr2(uplo blas.Uplo, n int, alpha complex64, x []complex6
 | 
			
		||||
 | 
			
		||||
// Ctbmv performs one of the matrix-vector operations
 | 
			
		||||
//  x = A * x   if trans = blas.NoTrans
 | 
			
		||||
//  x = A^T * x  if trans = blas.Trans
 | 
			
		||||
//  x = A^H * x  if trans = blas.ConjTrans
 | 
			
		||||
//  x = Aᵀ * x  if trans = blas.Trans
 | 
			
		||||
//  x = Aᴴ * x  if trans = blas.ConjTrans
 | 
			
		||||
// where x is an n element vector and A is an n×n triangular band matrix, with
 | 
			
		||||
// (k+1) diagonals.
 | 
			
		||||
//
 | 
			
		||||
@@ -1792,8 +1792,8 @@ func (Implementation) Ctbmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
 | 
			
		||||
// Ctbsv solves one of the systems of equations
 | 
			
		||||
//  A * x = b   if trans == blas.NoTrans
 | 
			
		||||
//  A^T * x = b  if trans == blas.Trans
 | 
			
		||||
//  A^H * x = b  if trans == blas.ConjTrans
 | 
			
		||||
//  Aᵀ * x = b  if trans == blas.Trans
 | 
			
		||||
//  Aᴴ * x = b  if trans == blas.ConjTrans
 | 
			
		||||
// where b and x are n element vectors and A is an n×n triangular band matrix
 | 
			
		||||
// with (k+1) diagonals.
 | 
			
		||||
//
 | 
			
		||||
@@ -2036,8 +2036,8 @@ func (Implementation) Ctbsv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
 | 
			
		||||
// Ctpmv performs one of the matrix-vector operations
 | 
			
		||||
//  x = A * x   if trans = blas.NoTrans
 | 
			
		||||
//  x = A^T * x  if trans = blas.Trans
 | 
			
		||||
//  x = A^H * x  if trans = blas.ConjTrans
 | 
			
		||||
//  x = Aᵀ * x  if trans = blas.Trans
 | 
			
		||||
//  x = Aᴴ * x  if trans = blas.ConjTrans
 | 
			
		||||
// where x is an n element vector and A is an n×n triangular matrix, supplied in
 | 
			
		||||
// packed form.
 | 
			
		||||
//
 | 
			
		||||
@@ -2146,7 +2146,7 @@ func (Implementation) Ctpmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if trans == blas.Trans {
 | 
			
		||||
		// Form x = A^T*x.
 | 
			
		||||
		// Form x = Aᵀ*x.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			// kk points to the current diagonal element in ap.
 | 
			
		||||
			kk := n*(n+1)/2 - 1
 | 
			
		||||
@@ -2206,7 +2206,7 @@ func (Implementation) Ctpmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Form x = A^H*x.
 | 
			
		||||
	// Form x = Aᴴ*x.
 | 
			
		||||
	if uplo == blas.Upper {
 | 
			
		||||
		// kk points to the current diagonal element in ap.
 | 
			
		||||
		kk := n*(n+1)/2 - 1
 | 
			
		||||
@@ -2276,8 +2276,8 @@ func (Implementation) Ctpmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
 | 
			
		||||
// Ctpsv solves one of the systems of equations
 | 
			
		||||
//  A * x = b   if trans == blas.NoTrans
 | 
			
		||||
//  A^T * x = b  if trans == blas.Trans
 | 
			
		||||
//  A^H * x = b  if trans == blas.ConjTrans
 | 
			
		||||
//  Aᵀ * x = b  if trans == blas.Trans
 | 
			
		||||
//  Aᴴ * x = b  if trans == blas.ConjTrans
 | 
			
		||||
// where b and x are n element vectors and A is an n×n triangular matrix in
 | 
			
		||||
// packed form.
 | 
			
		||||
//
 | 
			
		||||
@@ -2391,7 +2391,7 @@ func (Implementation) Ctpsv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if trans == blas.Trans {
 | 
			
		||||
		// Form x = inv(A^T)*x.
 | 
			
		||||
		// Form x = inv(Aᵀ)*x.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			kk := 0
 | 
			
		||||
			if incX == 1 {
 | 
			
		||||
@@ -2446,7 +2446,7 @@ func (Implementation) Ctpsv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Form x = inv(A^H)*x.
 | 
			
		||||
	// Form x = inv(Aᴴ)*x.
 | 
			
		||||
	if uplo == blas.Upper {
 | 
			
		||||
		kk := 0
 | 
			
		||||
		if incX == 1 {
 | 
			
		||||
@@ -2514,8 +2514,8 @@ func (Implementation) Ctpsv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
 | 
			
		||||
// Ctrmv performs one of the matrix-vector operations
 | 
			
		||||
//  x = A * x   if trans = blas.NoTrans
 | 
			
		||||
//  x = A^T * x  if trans = blas.Trans
 | 
			
		||||
//  x = A^H * x  if trans = blas.ConjTrans
 | 
			
		||||
//  x = Aᵀ * x  if trans = blas.Trans
 | 
			
		||||
//  x = Aᴴ * x  if trans = blas.ConjTrans
 | 
			
		||||
// where x is a vector, and A is an n×n triangular matrix.
 | 
			
		||||
//
 | 
			
		||||
// Complex64 implementations are autogenerated and not directly tested.
 | 
			
		||||
@@ -2617,7 +2617,7 @@ func (Implementation) Ctrmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if trans == blas.Trans {
 | 
			
		||||
		// Form x = A^T*x.
 | 
			
		||||
		// Form x = Aᵀ*x.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			if incX == 1 {
 | 
			
		||||
				for i := n - 1; i >= 0; i-- {
 | 
			
		||||
@@ -2668,7 +2668,7 @@ func (Implementation) Ctrmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Form x = A^H*x.
 | 
			
		||||
	// Form x = Aᴴ*x.
 | 
			
		||||
	if uplo == blas.Upper {
 | 
			
		||||
		if incX == 1 {
 | 
			
		||||
			for i := n - 1; i >= 0; i-- {
 | 
			
		||||
@@ -2724,8 +2724,8 @@ func (Implementation) Ctrmv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
 | 
			
		||||
// Ctrsv solves one of the systems of equations
 | 
			
		||||
//  A * x = b   if trans == blas.NoTrans
 | 
			
		||||
//  A^T * x = b  if trans == blas.Trans
 | 
			
		||||
//  A^H * x = b  if trans == blas.ConjTrans
 | 
			
		||||
//  Aᵀ * x = b  if trans == blas.Trans
 | 
			
		||||
//  Aᴴ * x = b  if trans == blas.ConjTrans
 | 
			
		||||
// where b and x are n element vectors and A is an n×n triangular matrix.
 | 
			
		||||
//
 | 
			
		||||
// On entry, x contains the values of b, and the solution is
 | 
			
		||||
@@ -2835,7 +2835,7 @@ func (Implementation) Ctrsv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if trans == blas.Trans {
 | 
			
		||||
		// Form x = inv(A^T)*x.
 | 
			
		||||
		// Form x = inv(Aᵀ)*x.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			if incX == 1 {
 | 
			
		||||
				for j := 0; j < n; j++ {
 | 
			
		||||
@@ -2885,7 +2885,7 @@ func (Implementation) Ctrsv(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Form x = inv(A^H)*x.
 | 
			
		||||
	// Form x = inv(Aᴴ)*x.
 | 
			
		||||
	if uplo == blas.Upper {
 | 
			
		||||
		if incX == 1 {
 | 
			
		||||
			for j := 0; j < n; j++ {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level2float32.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level2float32.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -14,7 +14,7 @@ import (
 | 
			
		||||
var _ blas.Float32Level2 = Implementation{}
 | 
			
		||||
 | 
			
		||||
// Sger performs the rank-one operation
 | 
			
		||||
//  A += alpha * x * y^T
 | 
			
		||||
//  A += alpha * x * yᵀ
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha is a scalar.
 | 
			
		||||
//
 | 
			
		||||
// Float32 implementations are autogenerated and not directly tested.
 | 
			
		||||
@@ -64,7 +64,7 @@ func (Implementation) Sger(m, n int, alpha float32, x []float32, incX int, y []f
 | 
			
		||||
 | 
			
		||||
// Sgbmv performs one of the matrix-vector operations
 | 
			
		||||
//  y = alpha * A * x + beta * y   if tA == blas.NoTrans
 | 
			
		||||
//  y = alpha * A^T * x + beta * y  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
//  y = alpha * Aᵀ * x + beta * y  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an m×n band matrix with kL sub-diagonals and kU super-diagonals,
 | 
			
		||||
// x and y are vectors, and alpha and beta are scalars.
 | 
			
		||||
//
 | 
			
		||||
@@ -231,7 +231,7 @@ func (Implementation) Sgbmv(tA blas.Transpose, m, n, kL, kU int, alpha float32,
 | 
			
		||||
 | 
			
		||||
// Strmv performs one of the matrix-vector operations
 | 
			
		||||
//  x = A * x   if tA == blas.NoTrans
 | 
			
		||||
//  x = A^T * x  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
//  x = Aᵀ * x  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an n×n triangular matrix, and x is a vector.
 | 
			
		||||
//
 | 
			
		||||
// Float32 implementations are autogenerated and not directly tested.
 | 
			
		||||
@@ -385,7 +385,7 @@ func (Implementation) Strmv(ul blas.Uplo, tA blas.Transpose, d blas.Diag, n int,
 | 
			
		||||
 | 
			
		||||
// Strsv solves one of the systems of equations
 | 
			
		||||
//  A * x = b   if tA == blas.NoTrans
 | 
			
		||||
//  A^T * x = b  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
//  Aᵀ * x = b  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an n×n triangular matrix, and x and b are vectors.
 | 
			
		||||
//
 | 
			
		||||
// At entry to the function, x contains the values of b, and the result is
 | 
			
		||||
@@ -738,7 +738,7 @@ func (Implementation) Ssymv(ul blas.Uplo, n int, alpha float32, a []float32, lda
 | 
			
		||||
 | 
			
		||||
// Stbmv performs one of the matrix-vector operations
 | 
			
		||||
//  x = A * x   if tA == blas.NoTrans
 | 
			
		||||
//  x = A^T * x  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
//  x = Aᵀ * x  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an n×n triangular band matrix with k+1 diagonals, and x is a vector.
 | 
			
		||||
//
 | 
			
		||||
// Float32 implementations are autogenerated and not directly tested.
 | 
			
		||||
@@ -949,7 +949,7 @@ func (Implementation) Stbmv(ul blas.Uplo, tA blas.Transpose, d blas.Diag, n, k i
 | 
			
		||||
 | 
			
		||||
// Stpmv performs one of the matrix-vector operations
 | 
			
		||||
//  x = A * x   if tA == blas.NoTrans
 | 
			
		||||
//  x = A^T * x  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
//  x = Aᵀ * x  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an n×n triangular matrix in packed format, and x is a vector.
 | 
			
		||||
//
 | 
			
		||||
// Float32 implementations are autogenerated and not directly tested.
 | 
			
		||||
@@ -1130,7 +1130,7 @@ func (Implementation) Stpmv(ul blas.Uplo, tA blas.Transpose, d blas.Diag, n int,
 | 
			
		||||
 | 
			
		||||
// Stbsv solves one of the systems of equations
 | 
			
		||||
//  A * x = b   if tA == blas.NoTrans
 | 
			
		||||
//  A^T * x = b  if tA == blas.Trans or tA == blas.ConjTrans
 | 
			
		||||
//  Aᵀ * x = b  if tA == blas.Trans or tA == blas.ConjTrans
 | 
			
		||||
// where A is an n×n triangular band matrix with k+1 diagonals,
 | 
			
		||||
// and x and b are vectors.
 | 
			
		||||
//
 | 
			
		||||
@@ -1525,7 +1525,7 @@ func (Implementation) Ssbmv(ul blas.Uplo, n, k int, alpha float32, a []float32,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Ssyr performs the symmetric rank-one update
 | 
			
		||||
//  A += alpha * x * x^T
 | 
			
		||||
//  A += alpha * x * xᵀ
 | 
			
		||||
// where A is an n×n symmetric matrix, and x is a vector.
 | 
			
		||||
//
 | 
			
		||||
// Float32 implementations are autogenerated and not directly tested.
 | 
			
		||||
@@ -1625,7 +1625,7 @@ func (Implementation) Ssyr(ul blas.Uplo, n int, alpha float32, x []float32, incX
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Ssyr2 performs the symmetric rank-two update
 | 
			
		||||
//  A += alpha * x * y^T + alpha * y * x^T
 | 
			
		||||
//  A += alpha * x * yᵀ + alpha * y * xᵀ
 | 
			
		||||
// where A is an n×n symmetric matrix, x and y are vectors, and alpha is a scalar.
 | 
			
		||||
//
 | 
			
		||||
// Float32 implementations are autogenerated and not directly tested.
 | 
			
		||||
@@ -1735,7 +1735,7 @@ func (Implementation) Ssyr2(ul blas.Uplo, n int, alpha float32, x []float32, inc
 | 
			
		||||
 | 
			
		||||
// Stpsv solves one of the systems of equations
 | 
			
		||||
//  A * x = b   if tA == blas.NoTrans
 | 
			
		||||
//  A^T * x = b  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
//  Aᵀ * x = b  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an n×n triangular matrix in packed format, and x and b are vectors.
 | 
			
		||||
//
 | 
			
		||||
// At entry to the function, x contains the values of b, and the result is
 | 
			
		||||
@@ -2089,7 +2089,7 @@ func (Implementation) Sspmv(ul blas.Uplo, n int, alpha float32, ap []float32, x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Sspr performs the symmetric rank-one operation
 | 
			
		||||
//  A += alpha * x * x^T
 | 
			
		||||
//  A += alpha * x * xᵀ
 | 
			
		||||
// where A is an n×n symmetric matrix in packed format, x is a vector, and
 | 
			
		||||
// alpha is a scalar.
 | 
			
		||||
//
 | 
			
		||||
@@ -2183,7 +2183,7 @@ func (Implementation) Sspr(ul blas.Uplo, n int, alpha float32, x []float32, incX
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Sspr2 performs the symmetric rank-2 update
 | 
			
		||||
//  A += alpha * x * y^T + alpha * y * x^T
 | 
			
		||||
//  A += alpha * x * yᵀ + alpha * y * xᵀ
 | 
			
		||||
// where A is an n×n symmetric matrix in packed format, x and y are vectors,
 | 
			
		||||
// and alpha is a scalar.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level2float64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level2float64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,7 +12,7 @@ import (
 | 
			
		||||
var _ blas.Float64Level2 = Implementation{}
 | 
			
		||||
 | 
			
		||||
// Dger performs the rank-one operation
 | 
			
		||||
//  A += alpha * x * y^T
 | 
			
		||||
//  A += alpha * x * yᵀ
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha is a scalar.
 | 
			
		||||
func (Implementation) Dger(m, n int, alpha float64, x []float64, incX int, y []float64, incY int, a []float64, lda int) {
 | 
			
		||||
	if m < 0 {
 | 
			
		||||
@@ -60,7 +60,7 @@ func (Implementation) Dger(m, n int, alpha float64, x []float64, incX int, y []f
 | 
			
		||||
 | 
			
		||||
// Dgbmv performs one of the matrix-vector operations
 | 
			
		||||
//  y = alpha * A * x + beta * y   if tA == blas.NoTrans
 | 
			
		||||
//  y = alpha * A^T * x + beta * y  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
//  y = alpha * Aᵀ * x + beta * y  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an m×n band matrix with kL sub-diagonals and kU super-diagonals,
 | 
			
		||||
// x and y are vectors, and alpha and beta are scalars.
 | 
			
		||||
func (Implementation) Dgbmv(tA blas.Transpose, m, n, kL, kU int, alpha float64, a []float64, lda int, x []float64, incX int, beta float64, y []float64, incY int) {
 | 
			
		||||
@@ -225,7 +225,7 @@ func (Implementation) Dgbmv(tA blas.Transpose, m, n, kL, kU int, alpha float64,
 | 
			
		||||
 | 
			
		||||
// Dtrmv performs one of the matrix-vector operations
 | 
			
		||||
//  x = A * x   if tA == blas.NoTrans
 | 
			
		||||
//  x = A^T * x  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
//  x = Aᵀ * x  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an n×n triangular matrix, and x is a vector.
 | 
			
		||||
func (Implementation) Dtrmv(ul blas.Uplo, tA blas.Transpose, d blas.Diag, n int, a []float64, lda int, x []float64, incX int) {
 | 
			
		||||
	if ul != blas.Lower && ul != blas.Upper {
 | 
			
		||||
@@ -377,7 +377,7 @@ func (Implementation) Dtrmv(ul blas.Uplo, tA blas.Transpose, d blas.Diag, n int,
 | 
			
		||||
 | 
			
		||||
// Dtrsv solves one of the systems of equations
 | 
			
		||||
//  A * x = b   if tA == blas.NoTrans
 | 
			
		||||
//  A^T * x = b  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
//  Aᵀ * x = b  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an n×n triangular matrix, and x and b are vectors.
 | 
			
		||||
//
 | 
			
		||||
// At entry to the function, x contains the values of b, and the result is
 | 
			
		||||
@@ -726,7 +726,7 @@ func (Implementation) Dsymv(ul blas.Uplo, n int, alpha float64, a []float64, lda
 | 
			
		||||
 | 
			
		||||
// Dtbmv performs one of the matrix-vector operations
 | 
			
		||||
//  x = A * x   if tA == blas.NoTrans
 | 
			
		||||
//  x = A^T * x  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
//  x = Aᵀ * x  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an n×n triangular band matrix with k+1 diagonals, and x is a vector.
 | 
			
		||||
func (Implementation) Dtbmv(ul blas.Uplo, tA blas.Transpose, d blas.Diag, n, k int, a []float64, lda int, x []float64, incX int) {
 | 
			
		||||
	if ul != blas.Lower && ul != blas.Upper {
 | 
			
		||||
@@ -935,7 +935,7 @@ func (Implementation) Dtbmv(ul blas.Uplo, tA blas.Transpose, d blas.Diag, n, k i
 | 
			
		||||
 | 
			
		||||
// Dtpmv performs one of the matrix-vector operations
 | 
			
		||||
//  x = A * x   if tA == blas.NoTrans
 | 
			
		||||
//  x = A^T * x  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
//  x = Aᵀ * x  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an n×n triangular matrix in packed format, and x is a vector.
 | 
			
		||||
func (Implementation) Dtpmv(ul blas.Uplo, tA blas.Transpose, d blas.Diag, n int, ap []float64, x []float64, incX int) {
 | 
			
		||||
	if ul != blas.Lower && ul != blas.Upper {
 | 
			
		||||
@@ -1114,7 +1114,7 @@ func (Implementation) Dtpmv(ul blas.Uplo, tA blas.Transpose, d blas.Diag, n int,
 | 
			
		||||
 | 
			
		||||
// Dtbsv solves one of the systems of equations
 | 
			
		||||
//  A * x = b   if tA == blas.NoTrans
 | 
			
		||||
//  A^T * x = b  if tA == blas.Trans or tA == blas.ConjTrans
 | 
			
		||||
//  Aᵀ * x = b  if tA == blas.Trans or tA == blas.ConjTrans
 | 
			
		||||
// where A is an n×n triangular band matrix with k+1 diagonals,
 | 
			
		||||
// and x and b are vectors.
 | 
			
		||||
//
 | 
			
		||||
@@ -1505,7 +1505,7 @@ func (Implementation) Dsbmv(ul blas.Uplo, n, k int, alpha float64, a []float64,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Dsyr performs the symmetric rank-one update
 | 
			
		||||
//  A += alpha * x * x^T
 | 
			
		||||
//  A += alpha * x * xᵀ
 | 
			
		||||
// where A is an n×n symmetric matrix, and x is a vector.
 | 
			
		||||
func (Implementation) Dsyr(ul blas.Uplo, n int, alpha float64, x []float64, incX int, a []float64, lda int) {
 | 
			
		||||
	if ul != blas.Lower && ul != blas.Upper {
 | 
			
		||||
@@ -1603,7 +1603,7 @@ func (Implementation) Dsyr(ul blas.Uplo, n int, alpha float64, x []float64, incX
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Dsyr2 performs the symmetric rank-two update
 | 
			
		||||
//  A += alpha * x * y^T + alpha * y * x^T
 | 
			
		||||
//  A += alpha * x * yᵀ + alpha * y * xᵀ
 | 
			
		||||
// where A is an n×n symmetric matrix, x and y are vectors, and alpha is a scalar.
 | 
			
		||||
func (Implementation) Dsyr2(ul blas.Uplo, n int, alpha float64, x []float64, incX int, y []float64, incY int, a []float64, lda int) {
 | 
			
		||||
	if ul != blas.Lower && ul != blas.Upper {
 | 
			
		||||
@@ -1711,7 +1711,7 @@ func (Implementation) Dsyr2(ul blas.Uplo, n int, alpha float64, x []float64, inc
 | 
			
		||||
 | 
			
		||||
// Dtpsv solves one of the systems of equations
 | 
			
		||||
//  A * x = b   if tA == blas.NoTrans
 | 
			
		||||
//  A^T * x = b  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
//  Aᵀ * x = b  if tA == blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an n×n triangular matrix in packed format, and x and b are vectors.
 | 
			
		||||
//
 | 
			
		||||
// At entry to the function, x contains the values of b, and the result is
 | 
			
		||||
@@ -2061,7 +2061,7 @@ func (Implementation) Dspmv(ul blas.Uplo, n int, alpha float64, ap []float64, x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Dspr performs the symmetric rank-one operation
 | 
			
		||||
//  A += alpha * x * x^T
 | 
			
		||||
//  A += alpha * x * xᵀ
 | 
			
		||||
// where A is an n×n symmetric matrix in packed format, x is a vector, and
 | 
			
		||||
// alpha is a scalar.
 | 
			
		||||
func (Implementation) Dspr(ul blas.Uplo, n int, alpha float64, x []float64, incX int, ap []float64) {
 | 
			
		||||
@@ -2153,7 +2153,7 @@ func (Implementation) Dspr(ul blas.Uplo, n int, alpha float64, x []float64, incX
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Dspr2 performs the symmetric rank-2 update
 | 
			
		||||
//  A += alpha * x * y^T + alpha * y * x^T
 | 
			
		||||
//  A += alpha * x * yᵀ + alpha * y * xᵀ
 | 
			
		||||
// where A is an n×n symmetric matrix in packed format, x and y are vectors,
 | 
			
		||||
// and alpha is a scalar.
 | 
			
		||||
func (Implementation) Dspr2(ul blas.Uplo, n int, alpha float64, x []float64, incX int, y []float64, incY int, ap []float64) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										66
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level3cmplx128.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										66
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level3cmplx128.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -16,7 +16,7 @@ var _ blas.Complex128Level3 = Implementation{}
 | 
			
		||||
// Zgemm performs one of the matrix-matrix operations
 | 
			
		||||
//  C = alpha * op(A) * op(B) + beta * C
 | 
			
		||||
// where op(X) is one of
 | 
			
		||||
//  op(X) = X  or  op(X) = X^T  or  op(X) = X^H,
 | 
			
		||||
//  op(X) = X  or  op(X) = Xᵀ  or  op(X) = Xᴴ,
 | 
			
		||||
// alpha and beta are scalars, and A, B and C are matrices, with op(A) an m×k matrix,
 | 
			
		||||
// op(B) a k×n matrix and C an m×n matrix.
 | 
			
		||||
func (Implementation) Zgemm(tA, tB blas.Transpose, m, n, k int, alpha complex128, a []complex128, lda int, b []complex128, ldb int, beta complex128, c []complex128, ldc int) {
 | 
			
		||||
@@ -118,7 +118,7 @@ func (Implementation) Zgemm(tA, tB blas.Transpose, m, n, k int, alpha complex128
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		case blas.Trans:
 | 
			
		||||
			// Form  C = alpha * A * B^T + beta * C.
 | 
			
		||||
			// Form  C = alpha * A * Bᵀ + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				switch {
 | 
			
		||||
				case beta == 0:
 | 
			
		||||
@@ -138,7 +138,7 @@ func (Implementation) Zgemm(tA, tB blas.Transpose, m, n, k int, alpha complex128
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		case blas.ConjTrans:
 | 
			
		||||
			// Form  C = alpha * A * B^H + beta * C.
 | 
			
		||||
			// Form  C = alpha * A * Bᴴ + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				switch {
 | 
			
		||||
				case beta == 0:
 | 
			
		||||
@@ -161,7 +161,7 @@ func (Implementation) Zgemm(tA, tB blas.Transpose, m, n, k int, alpha complex128
 | 
			
		||||
	case blas.Trans:
 | 
			
		||||
		switch tB {
 | 
			
		||||
		case blas.NoTrans:
 | 
			
		||||
			// Form  C = alpha * A^T * B + beta * C.
 | 
			
		||||
			// Form  C = alpha * Aᵀ * B + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				for j := 0; j < n; j++ {
 | 
			
		||||
					var tmp complex128
 | 
			
		||||
@@ -176,7 +176,7 @@ func (Implementation) Zgemm(tA, tB blas.Transpose, m, n, k int, alpha complex128
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		case blas.Trans:
 | 
			
		||||
			// Form  C = alpha * A^T * B^T + beta * C.
 | 
			
		||||
			// Form  C = alpha * Aᵀ * Bᵀ + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				for j := 0; j < n; j++ {
 | 
			
		||||
					var tmp complex128
 | 
			
		||||
@@ -191,7 +191,7 @@ func (Implementation) Zgemm(tA, tB blas.Transpose, m, n, k int, alpha complex128
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		case blas.ConjTrans:
 | 
			
		||||
			// Form  C = alpha * A^T * B^H + beta * C.
 | 
			
		||||
			// Form  C = alpha * Aᵀ * Bᴴ + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				for j := 0; j < n; j++ {
 | 
			
		||||
					var tmp complex128
 | 
			
		||||
@@ -209,7 +209,7 @@ func (Implementation) Zgemm(tA, tB blas.Transpose, m, n, k int, alpha complex128
 | 
			
		||||
	case blas.ConjTrans:
 | 
			
		||||
		switch tB {
 | 
			
		||||
		case blas.NoTrans:
 | 
			
		||||
			// Form  C = alpha * A^H * B + beta * C.
 | 
			
		||||
			// Form  C = alpha * Aᴴ * B + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				for j := 0; j < n; j++ {
 | 
			
		||||
					var tmp complex128
 | 
			
		||||
@@ -224,7 +224,7 @@ func (Implementation) Zgemm(tA, tB blas.Transpose, m, n, k int, alpha complex128
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		case blas.Trans:
 | 
			
		||||
			// Form  C = alpha * A^H * B^T + beta * C.
 | 
			
		||||
			// Form  C = alpha * Aᴴ * Bᵀ + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				for j := 0; j < n; j++ {
 | 
			
		||||
					var tmp complex128
 | 
			
		||||
@@ -239,7 +239,7 @@ func (Implementation) Zgemm(tA, tB blas.Transpose, m, n, k int, alpha complex128
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		case blas.ConjTrans:
 | 
			
		||||
			// Form  C = alpha * A^H * B^H + beta * C.
 | 
			
		||||
			// Form  C = alpha * Aᴴ * Bᴴ + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				for j := 0; j < n; j++ {
 | 
			
		||||
					var tmp complex128
 | 
			
		||||
@@ -405,8 +405,8 @@ func (Implementation) Zhemm(side blas.Side, uplo blas.Uplo, m, n int, alpha comp
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Zherk performs one of the hermitian rank-k operations
 | 
			
		||||
//  C = alpha*A*A^H + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*A^H*A + beta*C  if trans == blas.ConjTrans
 | 
			
		||||
//  C = alpha*A*Aᴴ + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*Aᴴ*A + beta*C  if trans == blas.ConjTrans
 | 
			
		||||
// where alpha and beta are real scalars, C is an n×n hermitian matrix and A is
 | 
			
		||||
// an n×k matrix in the first case and a k×n matrix in the second case.
 | 
			
		||||
//
 | 
			
		||||
@@ -494,7 +494,7 @@ func (Implementation) Zherk(uplo blas.Uplo, trans blas.Transpose, n, k int, alph
 | 
			
		||||
 | 
			
		||||
	calpha := complex(alpha, 0)
 | 
			
		||||
	if trans == blas.NoTrans {
 | 
			
		||||
		// Form  C = alpha*A*A^H + beta*C.
 | 
			
		||||
		// Form  C = alpha*A*Aᴴ + beta*C.
 | 
			
		||||
		cbeta := complex(beta, 0)
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
@@ -553,7 +553,7 @@ func (Implementation) Zherk(uplo blas.Uplo, trans blas.Transpose, n, k int, alph
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Form  C = alpha*A^H*A + beta*C.
 | 
			
		||||
		// Form  C = alpha*Aᴴ*A + beta*C.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				ci := c[i*ldc+i : i*ldc+n]
 | 
			
		||||
@@ -603,8 +603,8 @@ func (Implementation) Zherk(uplo blas.Uplo, trans blas.Transpose, n, k int, alph
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Zher2k performs one of the hermitian rank-2k operations
 | 
			
		||||
//  C = alpha*A*B^H + conj(alpha)*B*A^H + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*A^H*B + conj(alpha)*B^H*A + beta*C  if trans == blas.ConjTrans
 | 
			
		||||
//  C = alpha*A*Bᴴ + conj(alpha)*B*Aᴴ + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*Aᴴ*B + conj(alpha)*Bᴴ*A + beta*C  if trans == blas.ConjTrans
 | 
			
		||||
// where alpha and beta are scalars with beta real, C is an n×n hermitian matrix
 | 
			
		||||
// and A and B are n×k matrices in the first case and k×n matrices in the second case.
 | 
			
		||||
//
 | 
			
		||||
@@ -698,7 +698,7 @@ func (Implementation) Zher2k(uplo blas.Uplo, trans blas.Transpose, n, k int, alp
 | 
			
		||||
	conjalpha := cmplx.Conj(alpha)
 | 
			
		||||
	cbeta := complex(beta, 0)
 | 
			
		||||
	if trans == blas.NoTrans {
 | 
			
		||||
		// Form  C = alpha*A*B^H + conj(alpha)*B*A^H + beta*C.
 | 
			
		||||
		// Form  C = alpha*A*Bᴴ + conj(alpha)*B*Aᴴ + beta*C.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				ci := c[i*ldc+i+1 : i*ldc+n]
 | 
			
		||||
@@ -741,7 +741,7 @@ func (Implementation) Zher2k(uplo blas.Uplo, trans blas.Transpose, n, k int, alp
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Form  C = alpha*A^H*B + conj(alpha)*B^H*A + beta*C.
 | 
			
		||||
		// Form  C = alpha*Aᴴ*B + conj(alpha)*Bᴴ*A + beta*C.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				ci := c[i*ldc+i : i*ldc+n]
 | 
			
		||||
@@ -943,8 +943,8 @@ func (Implementation) Zsymm(side blas.Side, uplo blas.Uplo, m, n int, alpha comp
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Zsyrk performs one of the symmetric rank-k operations
 | 
			
		||||
//  C = alpha*A*A^T + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*A^T*A + beta*C  if trans == blas.Trans
 | 
			
		||||
//  C = alpha*A*Aᵀ + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*Aᵀ*A + beta*C  if trans == blas.Trans
 | 
			
		||||
// where alpha and beta are scalars, C is an n×n symmetric matrix and A is
 | 
			
		||||
// an n×k matrix in the first case and a k×n matrix in the second case.
 | 
			
		||||
func (Implementation) Zsyrk(uplo blas.Uplo, trans blas.Transpose, n, k int, alpha complex128, a []complex128, lda int, beta complex128, c []complex128, ldc int) {
 | 
			
		||||
@@ -1022,7 +1022,7 @@ func (Implementation) Zsyrk(uplo blas.Uplo, trans blas.Transpose, n, k int, alph
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if trans == blas.NoTrans {
 | 
			
		||||
		// Form  C = alpha*A*A^T + beta*C.
 | 
			
		||||
		// Form  C = alpha*A*Aᵀ + beta*C.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				ci := c[i*ldc+i : i*ldc+n]
 | 
			
		||||
@@ -1042,7 +1042,7 @@ func (Implementation) Zsyrk(uplo blas.Uplo, trans blas.Transpose, n, k int, alph
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Form  C = alpha*A^T*A + beta*C.
 | 
			
		||||
		// Form  C = alpha*Aᵀ*A + beta*C.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				ci := c[i*ldc+i : i*ldc+n]
 | 
			
		||||
@@ -1088,8 +1088,8 @@ func (Implementation) Zsyrk(uplo blas.Uplo, trans blas.Transpose, n, k int, alph
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Zsyr2k performs one of the symmetric rank-2k operations
 | 
			
		||||
//  C = alpha*A*B^T + alpha*B*A^T + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*A^T*B + alpha*B^T*A + beta*C  if trans == blas.Trans
 | 
			
		||||
//  C = alpha*A*Bᵀ + alpha*B*Aᵀ + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*Aᵀ*B + alpha*Bᵀ*A + beta*C  if trans == blas.Trans
 | 
			
		||||
// where alpha and beta are scalars, C is an n×n symmetric matrix and A and B
 | 
			
		||||
// are n×k matrices in the first case and k×n matrices in the second case.
 | 
			
		||||
func (Implementation) Zsyr2k(uplo blas.Uplo, trans blas.Transpose, n, k int, alpha complex128, a []complex128, lda int, b []complex128, ldb int, beta complex128, c []complex128, ldc int) {
 | 
			
		||||
@@ -1172,7 +1172,7 @@ func (Implementation) Zsyr2k(uplo blas.Uplo, trans blas.Transpose, n, k int, alp
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if trans == blas.NoTrans {
 | 
			
		||||
		// Form  C = alpha*A*B^T + alpha*B*A^T + beta*C.
 | 
			
		||||
		// Form  C = alpha*A*Bᵀ + alpha*B*Aᵀ + beta*C.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				ci := c[i*ldc+i : i*ldc+n]
 | 
			
		||||
@@ -1207,7 +1207,7 @@ func (Implementation) Zsyr2k(uplo blas.Uplo, trans blas.Transpose, n, k int, alp
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Form  C = alpha*A^T*B + alpha*B^T*A + beta*C.
 | 
			
		||||
		// Form  C = alpha*Aᵀ*B + alpha*Bᵀ*A + beta*C.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				ci := c[i*ldc+i : i*ldc+n]
 | 
			
		||||
@@ -1266,8 +1266,8 @@ func (Implementation) Zsyr2k(uplo blas.Uplo, trans blas.Transpose, n, k int, alp
 | 
			
		||||
// where alpha is a scalar, B is an m×n matrix, A is a unit, or non-unit,
 | 
			
		||||
// upper or lower triangular matrix and op(A) is one of
 | 
			
		||||
//  op(A) = A   if trans == blas.NoTrans,
 | 
			
		||||
//  op(A) = A^T  if trans == blas.Trans,
 | 
			
		||||
//  op(A) = A^H  if trans == blas.ConjTrans.
 | 
			
		||||
//  op(A) = Aᵀ  if trans == blas.Trans,
 | 
			
		||||
//  op(A) = Aᴴ  if trans == blas.ConjTrans.
 | 
			
		||||
func (Implementation) Ztrmm(side blas.Side, uplo blas.Uplo, trans blas.Transpose, diag blas.Diag, m, n int, alpha complex128, a []complex128, lda int, b []complex128, ldb int) {
 | 
			
		||||
	na := m
 | 
			
		||||
	if side == blas.Right {
 | 
			
		||||
@@ -1356,7 +1356,7 @@ func (Implementation) Ztrmm(side blas.Side, uplo blas.Uplo, trans blas.Transpose
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			// Form B = alpha*A^T*B  or  B = alpha*A^H*B.
 | 
			
		||||
			// Form B = alpha*Aᵀ*B  or  B = alpha*Aᴴ*B.
 | 
			
		||||
			if uplo == blas.Upper {
 | 
			
		||||
				for k := m - 1; k >= 0; k-- {
 | 
			
		||||
					bk := b[k*ldb : k*ldb+n]
 | 
			
		||||
@@ -1445,7 +1445,7 @@ func (Implementation) Ztrmm(side blas.Side, uplo blas.Uplo, trans blas.Transpose
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			// Form B = alpha*B*A^T  or  B = alpha*B*A^H.
 | 
			
		||||
			// Form B = alpha*B*Aᵀ  or  B = alpha*B*Aᴴ.
 | 
			
		||||
			if uplo == blas.Upper {
 | 
			
		||||
				for i := 0; i < m; i++ {
 | 
			
		||||
					bi := b[i*ldb : i*ldb+n]
 | 
			
		||||
@@ -1494,8 +1494,8 @@ func (Implementation) Ztrmm(side blas.Side, uplo blas.Uplo, trans blas.Transpose
 | 
			
		||||
// where alpha is a scalar, X and B are m×n matrices, A is a unit or
 | 
			
		||||
// non-unit, upper or lower triangular matrix and op(A) is one of
 | 
			
		||||
//  op(A) = A   if transA == blas.NoTrans,
 | 
			
		||||
//  op(A) = A^T  if transA == blas.Trans,
 | 
			
		||||
//  op(A) = A^H  if transA == blas.ConjTrans.
 | 
			
		||||
//  op(A) = Aᵀ  if transA == blas.Trans,
 | 
			
		||||
//  op(A) = Aᴴ  if transA == blas.ConjTrans.
 | 
			
		||||
// On return the matrix X is overwritten on B.
 | 
			
		||||
func (Implementation) Ztrsm(side blas.Side, uplo blas.Uplo, transA blas.Transpose, diag blas.Diag, m, n int, alpha complex128, a []complex128, lda int, b []complex128, ldb int) {
 | 
			
		||||
	na := m
 | 
			
		||||
@@ -1581,7 +1581,7 @@ func (Implementation) Ztrsm(side blas.Side, uplo blas.Uplo, transA blas.Transpos
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			// Form  B = alpha*inv(A^T)*B  or  B = alpha*inv(A^H)*B.
 | 
			
		||||
			// Form  B = alpha*inv(Aᵀ)*B  or  B = alpha*inv(Aᴴ)*B.
 | 
			
		||||
			if uplo == blas.Upper {
 | 
			
		||||
				for i := 0; i < m; i++ {
 | 
			
		||||
					bi := b[i*ldb : i*ldb+n]
 | 
			
		||||
@@ -1670,7 +1670,7 @@ func (Implementation) Ztrsm(side blas.Side, uplo blas.Uplo, transA blas.Transpos
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			// Form  B = alpha*B*inv(A^T)  or   B = alpha*B*inv(A^H).
 | 
			
		||||
			// Form  B = alpha*B*inv(Aᵀ)  or   B = alpha*B*inv(Aᴴ).
 | 
			
		||||
			if uplo == blas.Upper {
 | 
			
		||||
				for i := 0; i < m; i++ {
 | 
			
		||||
					bi := b[i*ldb : i*ldb+n]
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										66
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level3cmplx64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										66
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level3cmplx64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -18,7 +18,7 @@ var _ blas.Complex64Level3 = Implementation{}
 | 
			
		||||
// Cgemm performs one of the matrix-matrix operations
 | 
			
		||||
//  C = alpha * op(A) * op(B) + beta * C
 | 
			
		||||
// where op(X) is one of
 | 
			
		||||
//  op(X) = X  or  op(X) = X^T  or  op(X) = X^H,
 | 
			
		||||
//  op(X) = X  or  op(X) = Xᵀ  or  op(X) = Xᴴ,
 | 
			
		||||
// alpha and beta are scalars, and A, B and C are matrices, with op(A) an m×k matrix,
 | 
			
		||||
// op(B) a k×n matrix and C an m×n matrix.
 | 
			
		||||
//
 | 
			
		||||
@@ -122,7 +122,7 @@ func (Implementation) Cgemm(tA, tB blas.Transpose, m, n, k int, alpha complex64,
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		case blas.Trans:
 | 
			
		||||
			// Form  C = alpha * A * B^T + beta * C.
 | 
			
		||||
			// Form  C = alpha * A * Bᵀ + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				switch {
 | 
			
		||||
				case beta == 0:
 | 
			
		||||
@@ -142,7 +142,7 @@ func (Implementation) Cgemm(tA, tB blas.Transpose, m, n, k int, alpha complex64,
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		case blas.ConjTrans:
 | 
			
		||||
			// Form  C = alpha * A * B^H + beta * C.
 | 
			
		||||
			// Form  C = alpha * A * Bᴴ + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				switch {
 | 
			
		||||
				case beta == 0:
 | 
			
		||||
@@ -165,7 +165,7 @@ func (Implementation) Cgemm(tA, tB blas.Transpose, m, n, k int, alpha complex64,
 | 
			
		||||
	case blas.Trans:
 | 
			
		||||
		switch tB {
 | 
			
		||||
		case blas.NoTrans:
 | 
			
		||||
			// Form  C = alpha * A^T * B + beta * C.
 | 
			
		||||
			// Form  C = alpha * Aᵀ * B + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				for j := 0; j < n; j++ {
 | 
			
		||||
					var tmp complex64
 | 
			
		||||
@@ -180,7 +180,7 @@ func (Implementation) Cgemm(tA, tB blas.Transpose, m, n, k int, alpha complex64,
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		case blas.Trans:
 | 
			
		||||
			// Form  C = alpha * A^T * B^T + beta * C.
 | 
			
		||||
			// Form  C = alpha * Aᵀ * Bᵀ + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				for j := 0; j < n; j++ {
 | 
			
		||||
					var tmp complex64
 | 
			
		||||
@@ -195,7 +195,7 @@ func (Implementation) Cgemm(tA, tB blas.Transpose, m, n, k int, alpha complex64,
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		case blas.ConjTrans:
 | 
			
		||||
			// Form  C = alpha * A^T * B^H + beta * C.
 | 
			
		||||
			// Form  C = alpha * Aᵀ * Bᴴ + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				for j := 0; j < n; j++ {
 | 
			
		||||
					var tmp complex64
 | 
			
		||||
@@ -213,7 +213,7 @@ func (Implementation) Cgemm(tA, tB blas.Transpose, m, n, k int, alpha complex64,
 | 
			
		||||
	case blas.ConjTrans:
 | 
			
		||||
		switch tB {
 | 
			
		||||
		case blas.NoTrans:
 | 
			
		||||
			// Form  C = alpha * A^H * B + beta * C.
 | 
			
		||||
			// Form  C = alpha * Aᴴ * B + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				for j := 0; j < n; j++ {
 | 
			
		||||
					var tmp complex64
 | 
			
		||||
@@ -228,7 +228,7 @@ func (Implementation) Cgemm(tA, tB blas.Transpose, m, n, k int, alpha complex64,
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		case blas.Trans:
 | 
			
		||||
			// Form  C = alpha * A^H * B^T + beta * C.
 | 
			
		||||
			// Form  C = alpha * Aᴴ * Bᵀ + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				for j := 0; j < n; j++ {
 | 
			
		||||
					var tmp complex64
 | 
			
		||||
@@ -243,7 +243,7 @@ func (Implementation) Cgemm(tA, tB blas.Transpose, m, n, k int, alpha complex64,
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		case blas.ConjTrans:
 | 
			
		||||
			// Form  C = alpha * A^H * B^H + beta * C.
 | 
			
		||||
			// Form  C = alpha * Aᴴ * Bᴴ + beta * C.
 | 
			
		||||
			for i := 0; i < m; i++ {
 | 
			
		||||
				for j := 0; j < n; j++ {
 | 
			
		||||
					var tmp complex64
 | 
			
		||||
@@ -411,8 +411,8 @@ func (Implementation) Chemm(side blas.Side, uplo blas.Uplo, m, n int, alpha comp
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Cherk performs one of the hermitian rank-k operations
 | 
			
		||||
//  C = alpha*A*A^H + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*A^H*A + beta*C  if trans == blas.ConjTrans
 | 
			
		||||
//  C = alpha*A*Aᴴ + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*Aᴴ*A + beta*C  if trans == blas.ConjTrans
 | 
			
		||||
// where alpha and beta are real scalars, C is an n×n hermitian matrix and A is
 | 
			
		||||
// an n×k matrix in the first case and a k×n matrix in the second case.
 | 
			
		||||
//
 | 
			
		||||
@@ -502,7 +502,7 @@ func (Implementation) Cherk(uplo blas.Uplo, trans blas.Transpose, n, k int, alph
 | 
			
		||||
 | 
			
		||||
	calpha := complex(alpha, 0)
 | 
			
		||||
	if trans == blas.NoTrans {
 | 
			
		||||
		// Form  C = alpha*A*A^H + beta*C.
 | 
			
		||||
		// Form  C = alpha*A*Aᴴ + beta*C.
 | 
			
		||||
		cbeta := complex(beta, 0)
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
@@ -561,7 +561,7 @@ func (Implementation) Cherk(uplo blas.Uplo, trans blas.Transpose, n, k int, alph
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Form  C = alpha*A^H*A + beta*C.
 | 
			
		||||
		// Form  C = alpha*Aᴴ*A + beta*C.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				ci := c[i*ldc+i : i*ldc+n]
 | 
			
		||||
@@ -611,8 +611,8 @@ func (Implementation) Cherk(uplo blas.Uplo, trans blas.Transpose, n, k int, alph
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Cher2k performs one of the hermitian rank-2k operations
 | 
			
		||||
//  C = alpha*A*B^H + conj(alpha)*B*A^H + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*A^H*B + conj(alpha)*B^H*A + beta*C  if trans == blas.ConjTrans
 | 
			
		||||
//  C = alpha*A*Bᴴ + conj(alpha)*B*Aᴴ + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*Aᴴ*B + conj(alpha)*Bᴴ*A + beta*C  if trans == blas.ConjTrans
 | 
			
		||||
// where alpha and beta are scalars with beta real, C is an n×n hermitian matrix
 | 
			
		||||
// and A and B are n×k matrices in the first case and k×n matrices in the second case.
 | 
			
		||||
//
 | 
			
		||||
@@ -708,7 +708,7 @@ func (Implementation) Cher2k(uplo blas.Uplo, trans blas.Transpose, n, k int, alp
 | 
			
		||||
	conjalpha := cmplx.Conj(alpha)
 | 
			
		||||
	cbeta := complex(beta, 0)
 | 
			
		||||
	if trans == blas.NoTrans {
 | 
			
		||||
		// Form  C = alpha*A*B^H + conj(alpha)*B*A^H + beta*C.
 | 
			
		||||
		// Form  C = alpha*A*Bᴴ + conj(alpha)*B*Aᴴ + beta*C.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				ci := c[i*ldc+i+1 : i*ldc+n]
 | 
			
		||||
@@ -751,7 +751,7 @@ func (Implementation) Cher2k(uplo blas.Uplo, trans blas.Transpose, n, k int, alp
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Form  C = alpha*A^H*B + conj(alpha)*B^H*A + beta*C.
 | 
			
		||||
		// Form  C = alpha*Aᴴ*B + conj(alpha)*Bᴴ*A + beta*C.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				ci := c[i*ldc+i : i*ldc+n]
 | 
			
		||||
@@ -955,8 +955,8 @@ func (Implementation) Csymm(side blas.Side, uplo blas.Uplo, m, n int, alpha comp
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Csyrk performs one of the symmetric rank-k operations
 | 
			
		||||
//  C = alpha*A*A^T + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*A^T*A + beta*C  if trans == blas.Trans
 | 
			
		||||
//  C = alpha*A*Aᵀ + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*Aᵀ*A + beta*C  if trans == blas.Trans
 | 
			
		||||
// where alpha and beta are scalars, C is an n×n symmetric matrix and A is
 | 
			
		||||
// an n×k matrix in the first case and a k×n matrix in the second case.
 | 
			
		||||
//
 | 
			
		||||
@@ -1036,7 +1036,7 @@ func (Implementation) Csyrk(uplo blas.Uplo, trans blas.Transpose, n, k int, alph
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if trans == blas.NoTrans {
 | 
			
		||||
		// Form  C = alpha*A*A^T + beta*C.
 | 
			
		||||
		// Form  C = alpha*A*Aᵀ + beta*C.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				ci := c[i*ldc+i : i*ldc+n]
 | 
			
		||||
@@ -1056,7 +1056,7 @@ func (Implementation) Csyrk(uplo blas.Uplo, trans blas.Transpose, n, k int, alph
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Form  C = alpha*A^T*A + beta*C.
 | 
			
		||||
		// Form  C = alpha*Aᵀ*A + beta*C.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				ci := c[i*ldc+i : i*ldc+n]
 | 
			
		||||
@@ -1102,8 +1102,8 @@ func (Implementation) Csyrk(uplo blas.Uplo, trans blas.Transpose, n, k int, alph
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Csyr2k performs one of the symmetric rank-2k operations
 | 
			
		||||
//  C = alpha*A*B^T + alpha*B*A^T + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*A^T*B + alpha*B^T*A + beta*C  if trans == blas.Trans
 | 
			
		||||
//  C = alpha*A*Bᵀ + alpha*B*Aᵀ + beta*C  if trans == blas.NoTrans
 | 
			
		||||
//  C = alpha*Aᵀ*B + alpha*Bᵀ*A + beta*C  if trans == blas.Trans
 | 
			
		||||
// where alpha and beta are scalars, C is an n×n symmetric matrix and A and B
 | 
			
		||||
// are n×k matrices in the first case and k×n matrices in the second case.
 | 
			
		||||
//
 | 
			
		||||
@@ -1188,7 +1188,7 @@ func (Implementation) Csyr2k(uplo blas.Uplo, trans blas.Transpose, n, k int, alp
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if trans == blas.NoTrans {
 | 
			
		||||
		// Form  C = alpha*A*B^T + alpha*B*A^T + beta*C.
 | 
			
		||||
		// Form  C = alpha*A*Bᵀ + alpha*B*Aᵀ + beta*C.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				ci := c[i*ldc+i : i*ldc+n]
 | 
			
		||||
@@ -1223,7 +1223,7 @@ func (Implementation) Csyr2k(uplo blas.Uplo, trans blas.Transpose, n, k int, alp
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Form  C = alpha*A^T*B + alpha*B^T*A + beta*C.
 | 
			
		||||
		// Form  C = alpha*Aᵀ*B + alpha*Bᵀ*A + beta*C.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				ci := c[i*ldc+i : i*ldc+n]
 | 
			
		||||
@@ -1282,8 +1282,8 @@ func (Implementation) Csyr2k(uplo blas.Uplo, trans blas.Transpose, n, k int, alp
 | 
			
		||||
// where alpha is a scalar, B is an m×n matrix, A is a unit, or non-unit,
 | 
			
		||||
// upper or lower triangular matrix and op(A) is one of
 | 
			
		||||
//  op(A) = A   if trans == blas.NoTrans,
 | 
			
		||||
//  op(A) = A^T  if trans == blas.Trans,
 | 
			
		||||
//  op(A) = A^H  if trans == blas.ConjTrans.
 | 
			
		||||
//  op(A) = Aᵀ  if trans == blas.Trans,
 | 
			
		||||
//  op(A) = Aᴴ  if trans == blas.ConjTrans.
 | 
			
		||||
//
 | 
			
		||||
// Complex64 implementations are autogenerated and not directly tested.
 | 
			
		||||
func (Implementation) Ctrmm(side blas.Side, uplo blas.Uplo, trans blas.Transpose, diag blas.Diag, m, n int, alpha complex64, a []complex64, lda int, b []complex64, ldb int) {
 | 
			
		||||
@@ -1374,7 +1374,7 @@ func (Implementation) Ctrmm(side blas.Side, uplo blas.Uplo, trans blas.Transpose
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			// Form B = alpha*A^T*B  or  B = alpha*A^H*B.
 | 
			
		||||
			// Form B = alpha*Aᵀ*B  or  B = alpha*Aᴴ*B.
 | 
			
		||||
			if uplo == blas.Upper {
 | 
			
		||||
				for k := m - 1; k >= 0; k-- {
 | 
			
		||||
					bk := b[k*ldb : k*ldb+n]
 | 
			
		||||
@@ -1463,7 +1463,7 @@ func (Implementation) Ctrmm(side blas.Side, uplo blas.Uplo, trans blas.Transpose
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			// Form B = alpha*B*A^T  or  B = alpha*B*A^H.
 | 
			
		||||
			// Form B = alpha*B*Aᵀ  or  B = alpha*B*Aᴴ.
 | 
			
		||||
			if uplo == blas.Upper {
 | 
			
		||||
				for i := 0; i < m; i++ {
 | 
			
		||||
					bi := b[i*ldb : i*ldb+n]
 | 
			
		||||
@@ -1512,8 +1512,8 @@ func (Implementation) Ctrmm(side blas.Side, uplo blas.Uplo, trans blas.Transpose
 | 
			
		||||
// where alpha is a scalar, X and B are m×n matrices, A is a unit or
 | 
			
		||||
// non-unit, upper or lower triangular matrix and op(A) is one of
 | 
			
		||||
//  op(A) = A   if transA == blas.NoTrans,
 | 
			
		||||
//  op(A) = A^T  if transA == blas.Trans,
 | 
			
		||||
//  op(A) = A^H  if transA == blas.ConjTrans.
 | 
			
		||||
//  op(A) = Aᵀ  if transA == blas.Trans,
 | 
			
		||||
//  op(A) = Aᴴ  if transA == blas.ConjTrans.
 | 
			
		||||
// On return the matrix X is overwritten on B.
 | 
			
		||||
//
 | 
			
		||||
// Complex64 implementations are autogenerated and not directly tested.
 | 
			
		||||
@@ -1601,7 +1601,7 @@ func (Implementation) Ctrsm(side blas.Side, uplo blas.Uplo, transA blas.Transpos
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			// Form  B = alpha*inv(A^T)*B  or  B = alpha*inv(A^H)*B.
 | 
			
		||||
			// Form  B = alpha*inv(Aᵀ)*B  or  B = alpha*inv(Aᴴ)*B.
 | 
			
		||||
			if uplo == blas.Upper {
 | 
			
		||||
				for i := 0; i < m; i++ {
 | 
			
		||||
					bi := b[i*ldb : i*ldb+n]
 | 
			
		||||
@@ -1690,7 +1690,7 @@ func (Implementation) Ctrsm(side blas.Side, uplo blas.Uplo, transA blas.Transpos
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			// Form  B = alpha*B*inv(A^T)  or   B = alpha*B*inv(A^H).
 | 
			
		||||
			// Form  B = alpha*B*inv(Aᵀ)  or   B = alpha*B*inv(Aᴴ).
 | 
			
		||||
			if uplo == blas.Upper {
 | 
			
		||||
				for i := 0; i < m; i++ {
 | 
			
		||||
					bi := b[i*ldb : i*ldb+n]
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level3float32.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level3float32.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -15,9 +15,9 @@ var _ blas.Float32Level3 = Implementation{}
 | 
			
		||||
 | 
			
		||||
// Strsm solves one of the matrix equations
 | 
			
		||||
//  A * X = alpha * B   if tA == blas.NoTrans and side == blas.Left
 | 
			
		||||
//  A^T * X = alpha * B  if tA == blas.Trans or blas.ConjTrans, and side == blas.Left
 | 
			
		||||
//  Aᵀ * X = alpha * B  if tA == blas.Trans or blas.ConjTrans, and side == blas.Left
 | 
			
		||||
//  X * A = alpha * B   if tA == blas.NoTrans and side == blas.Right
 | 
			
		||||
//  X * A^T = alpha * B  if tA == blas.Trans or blas.ConjTrans, and side == blas.Right
 | 
			
		||||
//  X * Aᵀ = alpha * B  if tA == blas.Trans or blas.ConjTrans, and side == blas.Right
 | 
			
		||||
// where A is an n×n or m×m triangular matrix, X and B are m×n matrices, and alpha is a
 | 
			
		||||
// scalar.
 | 
			
		||||
//
 | 
			
		||||
@@ -362,8 +362,8 @@ func (Implementation) Ssymm(s blas.Side, ul blas.Uplo, m, n int, alpha float32,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Ssyrk performs one of the symmetric rank-k operations
 | 
			
		||||
//  C = alpha * A * A^T + beta * C  if tA == blas.NoTrans
 | 
			
		||||
//  C = alpha * A^T * A + beta * C  if tA == blas.Trans or tA == blas.ConjTrans
 | 
			
		||||
//  C = alpha * A * Aᵀ + beta * C  if tA == blas.NoTrans
 | 
			
		||||
//  C = alpha * Aᵀ * A + beta * C  if tA == blas.Trans or tA == blas.ConjTrans
 | 
			
		||||
// where A is an n×k or k×n matrix, C is an n×n symmetric matrix, and alpha and
 | 
			
		||||
// beta are scalars.
 | 
			
		||||
//
 | 
			
		||||
@@ -514,8 +514,8 @@ func (Implementation) Ssyrk(ul blas.Uplo, tA blas.Transpose, n, k int, alpha flo
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Ssyr2k performs one of the symmetric rank 2k operations
 | 
			
		||||
//  C = alpha * A * B^T + alpha * B * A^T + beta * C  if tA == blas.NoTrans
 | 
			
		||||
//  C = alpha * A^T * B + alpha * B^T * A + beta * C  if tA == blas.Trans or tA == blas.ConjTrans
 | 
			
		||||
//  C = alpha * A * Bᵀ + alpha * B * Aᵀ + beta * C  if tA == blas.NoTrans
 | 
			
		||||
//  C = alpha * Aᵀ * B + alpha * Bᵀ * A + beta * C  if tA == blas.Trans or tA == blas.ConjTrans
 | 
			
		||||
// where A and B are n×k or k×n matrices, C is an n×n symmetric matrix, and
 | 
			
		||||
// alpha and beta are scalars.
 | 
			
		||||
//
 | 
			
		||||
@@ -679,9 +679,9 @@ func (Implementation) Ssyr2k(ul blas.Uplo, tA blas.Transpose, n, k int, alpha fl
 | 
			
		||||
 | 
			
		||||
// Strmm performs one of the matrix-matrix operations
 | 
			
		||||
//  B = alpha * A * B   if tA == blas.NoTrans and side == blas.Left
 | 
			
		||||
//  B = alpha * A^T * B  if tA == blas.Trans or blas.ConjTrans, and side == blas.Left
 | 
			
		||||
//  B = alpha * Aᵀ * B  if tA == blas.Trans or blas.ConjTrans, and side == blas.Left
 | 
			
		||||
//  B = alpha * B * A   if tA == blas.NoTrans and side == blas.Right
 | 
			
		||||
//  B = alpha * B * A^T  if tA == blas.Trans or blas.ConjTrans, and side == blas.Right
 | 
			
		||||
//  B = alpha * B * Aᵀ  if tA == blas.Trans or blas.ConjTrans, and side == blas.Right
 | 
			
		||||
// where A is an n×n or m×m triangular matrix, B is an m×n matrix, and alpha is a scalar.
 | 
			
		||||
//
 | 
			
		||||
// Float32 implementations are autogenerated and not directly tested.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level3float64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/level3float64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -13,9 +13,9 @@ var _ blas.Float64Level3 = Implementation{}
 | 
			
		||||
 | 
			
		||||
// Dtrsm solves one of the matrix equations
 | 
			
		||||
//  A * X = alpha * B   if tA == blas.NoTrans and side == blas.Left
 | 
			
		||||
//  A^T * X = alpha * B  if tA == blas.Trans or blas.ConjTrans, and side == blas.Left
 | 
			
		||||
//  Aᵀ * X = alpha * B  if tA == blas.Trans or blas.ConjTrans, and side == blas.Left
 | 
			
		||||
//  X * A = alpha * B   if tA == blas.NoTrans and side == blas.Right
 | 
			
		||||
//  X * A^T = alpha * B  if tA == blas.Trans or blas.ConjTrans, and side == blas.Right
 | 
			
		||||
//  X * Aᵀ = alpha * B  if tA == blas.Trans or blas.ConjTrans, and side == blas.Right
 | 
			
		||||
// where A is an n×n or m×m triangular matrix, X and B are m×n matrices, and alpha is a
 | 
			
		||||
// scalar.
 | 
			
		||||
//
 | 
			
		||||
@@ -356,8 +356,8 @@ func (Implementation) Dsymm(s blas.Side, ul blas.Uplo, m, n int, alpha float64,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Dsyrk performs one of the symmetric rank-k operations
 | 
			
		||||
//  C = alpha * A * A^T + beta * C  if tA == blas.NoTrans
 | 
			
		||||
//  C = alpha * A^T * A + beta * C  if tA == blas.Trans or tA == blas.ConjTrans
 | 
			
		||||
//  C = alpha * A * Aᵀ + beta * C  if tA == blas.NoTrans
 | 
			
		||||
//  C = alpha * Aᵀ * A + beta * C  if tA == blas.Trans or tA == blas.ConjTrans
 | 
			
		||||
// where A is an n×k or k×n matrix, C is an n×n symmetric matrix, and alpha and
 | 
			
		||||
// beta are scalars.
 | 
			
		||||
func (Implementation) Dsyrk(ul blas.Uplo, tA blas.Transpose, n, k int, alpha float64, a []float64, lda int, beta float64, c []float64, ldc int) {
 | 
			
		||||
@@ -506,8 +506,8 @@ func (Implementation) Dsyrk(ul blas.Uplo, tA blas.Transpose, n, k int, alpha flo
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Dsyr2k performs one of the symmetric rank 2k operations
 | 
			
		||||
//  C = alpha * A * B^T + alpha * B * A^T + beta * C  if tA == blas.NoTrans
 | 
			
		||||
//  C = alpha * A^T * B + alpha * B^T * A + beta * C  if tA == blas.Trans or tA == blas.ConjTrans
 | 
			
		||||
//  C = alpha * A * Bᵀ + alpha * B * Aᵀ + beta * C  if tA == blas.NoTrans
 | 
			
		||||
//  C = alpha * Aᵀ * B + alpha * Bᵀ * A + beta * C  if tA == blas.Trans or tA == blas.ConjTrans
 | 
			
		||||
// where A and B are n×k or k×n matrices, C is an n×n symmetric matrix, and
 | 
			
		||||
// alpha and beta are scalars.
 | 
			
		||||
func (Implementation) Dsyr2k(ul blas.Uplo, tA blas.Transpose, n, k int, alpha float64, a []float64, lda int, b []float64, ldb int, beta float64, c []float64, ldc int) {
 | 
			
		||||
@@ -669,9 +669,9 @@ func (Implementation) Dsyr2k(ul blas.Uplo, tA blas.Transpose, n, k int, alpha fl
 | 
			
		||||
 | 
			
		||||
// Dtrmm performs one of the matrix-matrix operations
 | 
			
		||||
//  B = alpha * A * B   if tA == blas.NoTrans and side == blas.Left
 | 
			
		||||
//  B = alpha * A^T * B  if tA == blas.Trans or blas.ConjTrans, and side == blas.Left
 | 
			
		||||
//  B = alpha * Aᵀ * B  if tA == blas.Trans or blas.ConjTrans, and side == blas.Left
 | 
			
		||||
//  B = alpha * B * A   if tA == blas.NoTrans and side == blas.Right
 | 
			
		||||
//  B = alpha * B * A^T  if tA == blas.Trans or blas.ConjTrans, and side == blas.Right
 | 
			
		||||
//  B = alpha * B * Aᵀ  if tA == blas.Trans or blas.ConjTrans, and side == blas.Right
 | 
			
		||||
// where A is an n×n or m×m triangular matrix, B is an m×n matrix, and alpha is a scalar.
 | 
			
		||||
func (Implementation) Dtrmm(s blas.Side, ul blas.Uplo, tA blas.Transpose, d blas.Diag, m, n int, alpha float64, a []float64, lda int, b []float64, ldb int) {
 | 
			
		||||
	if s != blas.Left && s != blas.Right {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/sgemm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/gonum.org/v1/gonum/blas/gonum/sgemm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -16,9 +16,9 @@ import (
 | 
			
		||||
 | 
			
		||||
// Sgemm performs one of the matrix-matrix operations
 | 
			
		||||
//  C = alpha * A * B + beta * C
 | 
			
		||||
//  C = alpha * A^T * B + beta * C
 | 
			
		||||
//  C = alpha * A * B^T + beta * C
 | 
			
		||||
//  C = alpha * A^T * B^T + beta * C
 | 
			
		||||
//  C = alpha * Aᵀ * B + beta * C
 | 
			
		||||
//  C = alpha * A * Bᵀ + beta * C
 | 
			
		||||
//  C = alpha * Aᵀ * Bᵀ + beta * C
 | 
			
		||||
// where A is an m×k or k×m dense matrix, B is an n×k or k×n dense matrix, C is
 | 
			
		||||
// an m×n matrix, and alpha and beta are scalars. tA and tB specify whether A or
 | 
			
		||||
// B are transposed.
 | 
			
		||||
@@ -138,9 +138,9 @@ func sgemmParallel(aTrans, bTrans bool, m, n, k int, a []float32, lda int, b []f
 | 
			
		||||
	// In all cases, there is one dimension for each matrix along which
 | 
			
		||||
	// C must be updated sequentially.
 | 
			
		||||
	// Cij = \sum_k Aik Bki,	(A * B)
 | 
			
		||||
	// Cij = \sum_k Aki Bkj,	(A^T * B)
 | 
			
		||||
	// Cij = \sum_k Aik Bjk,	(A * B^T)
 | 
			
		||||
	// Cij = \sum_k Aki Bjk,	(A^T * B^T)
 | 
			
		||||
	// Cij = \sum_k Aki Bkj,	(Aᵀ * B)
 | 
			
		||||
	// Cij = \sum_k Aik Bjk,	(A * Bᵀ)
 | 
			
		||||
	// Cij = \sum_k Aki Bjk,	(Aᵀ * Bᵀ)
 | 
			
		||||
	//
 | 
			
		||||
	// This code computes one {i, j} block sequentially along the k dimension,
 | 
			
		||||
	// and computes all of the {i, j} blocks concurrently. This
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/gonum.org/v1/gonum/graph/encoding/dot/encode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/gonum.org/v1/gonum/graph/encoding/dot/encode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -135,8 +135,6 @@ type printer struct {
 | 
			
		||||
	prefix string
 | 
			
		||||
	indent string
 | 
			
		||||
	depth  int
 | 
			
		||||
 | 
			
		||||
	err error
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type edge struct {
 | 
			
		||||
@@ -291,7 +289,7 @@ func (p *simpleGraphPrinter) print(g graph.Graph, name string, needsIndent, isSu
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *printer) printFrontMatter(name string, needsIndent, isSubgraph, isDirected, isStrict bool) error {
 | 
			
		||||
func (p *printer) printFrontMatter(name string, needsIndent, isSubgraph, isDirected, isStrict bool) {
 | 
			
		||||
	p.buf.WriteString(p.prefix)
 | 
			
		||||
	if needsIndent {
 | 
			
		||||
		for i := 0; i < p.depth; i++ {
 | 
			
		||||
@@ -316,7 +314,6 @@ func (p *printer) printFrontMatter(name string, needsIndent, isSubgraph, isDirec
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	p.openBlock(" {")
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *printer) writeNode(n graph.Node) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										57
									
								
								vendor/gonum.org/v1/gonum/graph/iterator/nodes.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										57
									
								
								vendor/gonum.org/v1/gonum/graph/iterator/nodes.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,7 +4,11 @@
 | 
			
		||||
 | 
			
		||||
package iterator
 | 
			
		||||
 | 
			
		||||
import "gonum.org/v1/gonum/graph"
 | 
			
		||||
import (
 | 
			
		||||
	"reflect"
 | 
			
		||||
 | 
			
		||||
	"gonum.org/v1/gonum/graph"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// OrderedNodes implements the graph.Nodes and graph.NodeSlicer interfaces.
 | 
			
		||||
// The iteration order of OrderedNodes is the order of nodes passed to
 | 
			
		||||
@@ -123,3 +127,54 @@ func (n *ImplicitNodes) NodeSlice() []graph.Node {
 | 
			
		||||
	}
 | 
			
		||||
	return nodes
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Nodes implements the graph.Nodes interfaces.
 | 
			
		||||
// The iteration order of Nodes is randomized.
 | 
			
		||||
type Nodes struct {
 | 
			
		||||
	nodes reflect.Value
 | 
			
		||||
	iter  *reflect.MapIter
 | 
			
		||||
	pos   int
 | 
			
		||||
	curr  graph.Node
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewNodes returns a Nodes initialized with the provided nodes, a
 | 
			
		||||
// map of node IDs to graph.Nodes. No check is made that the keys
 | 
			
		||||
// match the graph.Node IDs, and the map keys are not used.
 | 
			
		||||
//
 | 
			
		||||
// Behavior of the Nodes is unspecified if nodes is mutated after
 | 
			
		||||
// the call the NewNodes.
 | 
			
		||||
func NewNodes(nodes map[int64]graph.Node) *Nodes {
 | 
			
		||||
	rv := reflect.ValueOf(nodes)
 | 
			
		||||
	return &Nodes{nodes: rv, iter: rv.MapRange()}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Len returns the remaining number of nodes to be iterated over.
 | 
			
		||||
func (n *Nodes) Len() int {
 | 
			
		||||
	return n.nodes.Len() - n.pos
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Next returns whether the next call of Node will return a valid node.
 | 
			
		||||
func (n *Nodes) Next() bool {
 | 
			
		||||
	if n.pos >= n.nodes.Len() {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
	ok := n.iter.Next()
 | 
			
		||||
	if ok {
 | 
			
		||||
		n.pos++
 | 
			
		||||
		n.curr = n.iter.Value().Interface().(graph.Node)
 | 
			
		||||
	}
 | 
			
		||||
	return ok
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Node returns the current node of the iterator. Next must have been
 | 
			
		||||
// called prior to a call to Node.
 | 
			
		||||
func (n *Nodes) Node() graph.Node {
 | 
			
		||||
	return n.curr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Reset returns the iterator to its initial state.
 | 
			
		||||
func (n *Nodes) Reset() {
 | 
			
		||||
	n.curr = nil
 | 
			
		||||
	n.pos = 0
 | 
			
		||||
	n.iter = n.nodes.MapRange()
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								vendor/gonum.org/v1/gonum/graph/simple/directed.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/gonum.org/v1/gonum/graph/simple/directed.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -49,8 +49,6 @@ func (g *DirectedGraph) AddNode(n graph.Node) {
 | 
			
		||||
		panic(fmt.Sprintf("simple: node ID collision: %d", n.ID()))
 | 
			
		||||
	}
 | 
			
		||||
	g.nodes[n.ID()] = n
 | 
			
		||||
	g.from[n.ID()] = make(map[int64]graph.Edge)
 | 
			
		||||
	g.to[n.ID()] = make(map[int64]graph.Edge)
 | 
			
		||||
	g.nodeIDs.Use(n.ID())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -212,13 +210,21 @@ func (g *DirectedGraph) SetEdge(e graph.Edge) {
 | 
			
		||||
		g.nodes[tid] = to
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	g.from[fid][tid] = e
 | 
			
		||||
	g.to[tid][fid] = e
 | 
			
		||||
	if fm, ok := g.from[fid]; ok {
 | 
			
		||||
		fm[tid] = e
 | 
			
		||||
	} else {
 | 
			
		||||
		g.from[fid] = map[int64]graph.Edge{tid: e}
 | 
			
		||||
	}
 | 
			
		||||
	if tm, ok := g.to[tid]; ok {
 | 
			
		||||
		tm[fid] = e
 | 
			
		||||
	} else {
 | 
			
		||||
		g.to[tid] = map[int64]graph.Edge{fid: e}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// To returns all nodes in g that can reach directly to n.
 | 
			
		||||
func (g *DirectedGraph) To(id int64) graph.Nodes {
 | 
			
		||||
	if _, ok := g.from[id]; !ok {
 | 
			
		||||
	if _, ok := g.to[id]; !ok {
 | 
			
		||||
		return graph.Empty
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								vendor/gonum.org/v1/gonum/graph/simple/undirected.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/gonum.org/v1/gonum/graph/simple/undirected.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -47,7 +47,6 @@ func (g *UndirectedGraph) AddNode(n graph.Node) {
 | 
			
		||||
		panic(fmt.Sprintf("simple: node ID collision: %d", n.ID()))
 | 
			
		||||
	}
 | 
			
		||||
	g.nodes[n.ID()] = n
 | 
			
		||||
	g.edges[n.ID()] = make(map[int64]graph.Edge)
 | 
			
		||||
	g.nodeIDs.Use(n.ID())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -211,6 +210,14 @@ func (g *UndirectedGraph) SetEdge(e graph.Edge) {
 | 
			
		||||
		g.nodes[tid] = to
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	g.edges[fid][tid] = e
 | 
			
		||||
	g.edges[tid][fid] = e
 | 
			
		||||
	if fm, ok := g.edges[fid]; ok {
 | 
			
		||||
		fm[tid] = e
 | 
			
		||||
	} else {
 | 
			
		||||
		g.edges[fid] = map[int64]graph.Edge{tid: e}
 | 
			
		||||
	}
 | 
			
		||||
	if tm, ok := g.edges[tid]; ok {
 | 
			
		||||
		tm[fid] = e
 | 
			
		||||
	} else {
 | 
			
		||||
		g.edges[tid] = map[int64]graph.Edge{fid: e}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								vendor/gonum.org/v1/gonum/graph/simple/weighted_directed.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/gonum.org/v1/gonum/graph/simple/weighted_directed.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -57,8 +57,6 @@ func (g *WeightedDirectedGraph) AddNode(n graph.Node) {
 | 
			
		||||
		panic(fmt.Sprintf("simple: node ID collision: %d", n.ID()))
 | 
			
		||||
	}
 | 
			
		||||
	g.nodes[n.ID()] = n
 | 
			
		||||
	g.from[n.ID()] = make(map[int64]graph.WeightedEdge)
 | 
			
		||||
	g.to[n.ID()] = make(map[int64]graph.WeightedEdge)
 | 
			
		||||
	g.nodeIDs.Use(n.ID())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -143,7 +141,7 @@ func (g *WeightedDirectedGraph) Node(id int64) graph.Node {
 | 
			
		||||
 | 
			
		||||
// Nodes returns all the nodes in the graph.
 | 
			
		||||
func (g *WeightedDirectedGraph) Nodes() graph.Nodes {
 | 
			
		||||
	if len(g.from) == 0 {
 | 
			
		||||
	if len(g.nodes) == 0 {
 | 
			
		||||
		return graph.Empty
 | 
			
		||||
	}
 | 
			
		||||
	nodes := make([]graph.Node, len(g.nodes))
 | 
			
		||||
@@ -216,13 +214,21 @@ func (g *WeightedDirectedGraph) SetWeightedEdge(e graph.WeightedEdge) {
 | 
			
		||||
		g.nodes[tid] = to
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	g.from[fid][tid] = e
 | 
			
		||||
	g.to[tid][fid] = e
 | 
			
		||||
	if fm, ok := g.from[fid]; ok {
 | 
			
		||||
		fm[tid] = e
 | 
			
		||||
	} else {
 | 
			
		||||
		g.from[fid] = map[int64]graph.WeightedEdge{tid: e}
 | 
			
		||||
	}
 | 
			
		||||
	if tm, ok := g.to[tid]; ok {
 | 
			
		||||
		tm[fid] = e
 | 
			
		||||
	} else {
 | 
			
		||||
		g.to[tid] = map[int64]graph.WeightedEdge{fid: e}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// To returns all nodes in g that can reach directly to n.
 | 
			
		||||
func (g *WeightedDirectedGraph) To(id int64) graph.Nodes {
 | 
			
		||||
	if _, ok := g.from[id]; !ok {
 | 
			
		||||
	if _, ok := g.to[id]; !ok {
 | 
			
		||||
		return graph.Empty
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								vendor/gonum.org/v1/gonum/graph/simple/weighted_undirected.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/gonum.org/v1/gonum/graph/simple/weighted_undirected.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -55,7 +55,6 @@ func (g *WeightedUndirectedGraph) AddNode(n graph.Node) {
 | 
			
		||||
		panic(fmt.Sprintf("simple: node ID collision: %d", n.ID()))
 | 
			
		||||
	}
 | 
			
		||||
	g.nodes[n.ID()] = n
 | 
			
		||||
	g.edges[n.ID()] = make(map[int64]graph.WeightedEdge)
 | 
			
		||||
	g.nodeIDs.Use(n.ID())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -212,8 +211,16 @@ func (g *WeightedUndirectedGraph) SetWeightedEdge(e graph.WeightedEdge) {
 | 
			
		||||
		g.nodes[tid] = to
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	g.edges[fid][tid] = e
 | 
			
		||||
	g.edges[tid][fid] = e
 | 
			
		||||
	if fm, ok := g.edges[fid]; ok {
 | 
			
		||||
		fm[tid] = e
 | 
			
		||||
	} else {
 | 
			
		||||
		g.edges[fid] = map[int64]graph.WeightedEdge{tid: e}
 | 
			
		||||
	}
 | 
			
		||||
	if tm, ok := g.edges[tid]; ok {
 | 
			
		||||
		tm[fid] = e
 | 
			
		||||
	} else {
 | 
			
		||||
		g.edges[tid] = map[int64]graph.WeightedEdge{fid: e}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Weight returns the weight for the edge between x and y if Edge(x, y) returns a non-nil Edge.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/internal/asm/f32/ge_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/internal/asm/f32/ge_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,7 +7,7 @@
 | 
			
		||||
package f32
 | 
			
		||||
 | 
			
		||||
// Ger performs the rank-one operation
 | 
			
		||||
//  A += alpha * x * y^T
 | 
			
		||||
//  A += alpha * x * yᵀ
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha is a scalar.
 | 
			
		||||
func Ger(m, n uintptr, alpha float32,
 | 
			
		||||
	x []float32, incX uintptr,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/internal/asm/f32/ge_noasm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/internal/asm/f32/ge_noasm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,7 +7,7 @@
 | 
			
		||||
package f32
 | 
			
		||||
 | 
			
		||||
// Ger performs the rank-one operation
 | 
			
		||||
//  A += alpha * x * y^T
 | 
			
		||||
//  A += alpha * x * yᵀ
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha is a scalar.
 | 
			
		||||
func Ger(m, n uintptr, alpha float32, x []float32, incX uintptr, y []float32, incY uintptr, a []float32, lda uintptr) {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/internal/asm/f64/ge_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/internal/asm/f64/ge_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,7 +7,7 @@
 | 
			
		||||
package f64
 | 
			
		||||
 | 
			
		||||
// Ger performs the rank-one operation
 | 
			
		||||
//  A += alpha * x * y^T
 | 
			
		||||
//  A += alpha * x * yᵀ
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha is a scalar.
 | 
			
		||||
func Ger(m, n uintptr, alpha float64, x []float64, incX uintptr, y []float64, incY uintptr, a []float64, lda uintptr)
 | 
			
		||||
 | 
			
		||||
@@ -17,6 +17,6 @@ func Ger(m, n uintptr, alpha float64, x []float64, incX uintptr, y []float64, in
 | 
			
		||||
func GemvN(m, n uintptr, alpha float64, a []float64, lda uintptr, x []float64, incX uintptr, beta float64, y []float64, incY uintptr)
 | 
			
		||||
 | 
			
		||||
// GemvT computes
 | 
			
		||||
//  y = alpha * A^T * x + beta * y
 | 
			
		||||
//  y = alpha * Aᵀ * x + beta * y
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha and beta are scalars.
 | 
			
		||||
func GemvT(m, n uintptr, alpha float64, a []float64, lda uintptr, x []float64, incX uintptr, beta float64, y []float64, incY uintptr)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/internal/asm/f64/ge_noasm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/internal/asm/f64/ge_noasm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,7 +7,7 @@
 | 
			
		||||
package f64
 | 
			
		||||
 | 
			
		||||
// Ger performs the rank-one operation
 | 
			
		||||
//  A += alpha * x * y^T
 | 
			
		||||
//  A += alpha * x * yᵀ
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha is a scalar.
 | 
			
		||||
func Ger(m, n uintptr, alpha float64, x []float64, incX uintptr, y []float64, incY uintptr, a []float64, lda uintptr) {
 | 
			
		||||
	if incX == 1 && incY == 1 {
 | 
			
		||||
@@ -73,7 +73,7 @@ func GemvN(m, n uintptr, alpha float64, a []float64, lda uintptr, x []float64, i
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GemvT computes
 | 
			
		||||
//  y = alpha * A^T * x + beta * y
 | 
			
		||||
//  y = alpha * Aᵀ * x + beta * y
 | 
			
		||||
// where A is an m×n dense matrix, x and y are vectors, and alpha and beta are scalars.
 | 
			
		||||
func GemvT(m, n uintptr, alpha float64, a []float64, lda uintptr, x []float64, incX uintptr, beta float64, y []float64, incY uintptr) {
 | 
			
		||||
	var kx, ky, i uintptr
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/BUILD
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/BUILD
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,6 +4,7 @@ go_library(
 | 
			
		||||
    name = "go_default_library",
 | 
			
		||||
    srcs = [
 | 
			
		||||
        "dbdsqr.go",
 | 
			
		||||
        "dcombssq.go",
 | 
			
		||||
        "dgebak.go",
 | 
			
		||||
        "dgebal.go",
 | 
			
		||||
        "dgebd2.go",
 | 
			
		||||
@@ -40,6 +41,7 @@ go_library(
 | 
			
		||||
        "dlahr2.go",
 | 
			
		||||
        "dlaln2.go",
 | 
			
		||||
        "dlange.go",
 | 
			
		||||
        "dlansb.go",
 | 
			
		||||
        "dlanst.go",
 | 
			
		||||
        "dlansy.go",
 | 
			
		||||
        "dlantr.go",
 | 
			
		||||
@@ -74,6 +76,7 @@ go_library(
 | 
			
		||||
        "dlasv2.go",
 | 
			
		||||
        "dlaswp.go",
 | 
			
		||||
        "dlasy2.go",
 | 
			
		||||
        "dlatbs.go",
 | 
			
		||||
        "dlatrd.go",
 | 
			
		||||
        "dlatrs.go",
 | 
			
		||||
        "dlauu2.go",
 | 
			
		||||
@@ -95,7 +98,10 @@ go_library(
 | 
			
		||||
        "dormlq.go",
 | 
			
		||||
        "dormqr.go",
 | 
			
		||||
        "dormr2.go",
 | 
			
		||||
        "dpbcon.go",
 | 
			
		||||
        "dpbtf2.go",
 | 
			
		||||
        "dpbtrf.go",
 | 
			
		||||
        "dpbtrs.go",
 | 
			
		||||
        "dpocon.go",
 | 
			
		||||
        "dpotf2.go",
 | 
			
		||||
        "dpotrf.go",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dbdsqr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dbdsqr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -15,19 +15,19 @@ import (
 | 
			
		||||
// Dbdsqr performs a singular value decomposition of a real n×n bidiagonal matrix.
 | 
			
		||||
//
 | 
			
		||||
// The SVD of the bidiagonal matrix B is
 | 
			
		||||
//  B = Q * S * P^T
 | 
			
		||||
//  B = Q * S * Pᵀ
 | 
			
		||||
// where S is a diagonal matrix of singular values, Q is an orthogonal matrix of
 | 
			
		||||
// left singular vectors, and P is an orthogonal matrix of right singular vectors.
 | 
			
		||||
//
 | 
			
		||||
// Q and P are only computed if requested. If left singular vectors are requested,
 | 
			
		||||
// this routine returns U * Q instead of Q, and if right singular vectors are
 | 
			
		||||
// requested P^T * VT is returned instead of P^T.
 | 
			
		||||
// requested Pᵀ * VT is returned instead of Pᵀ.
 | 
			
		||||
//
 | 
			
		||||
// Frequently Dbdsqr is used in conjunction with Dgebrd which reduces a general
 | 
			
		||||
// matrix A into bidiagonal form. In this case, the SVD of A is
 | 
			
		||||
//  A = (U * Q) * S * (P^T * VT)
 | 
			
		||||
//  A = (U * Q) * S * (Pᵀ * VT)
 | 
			
		||||
//
 | 
			
		||||
// This routine may also compute Q^T * C.
 | 
			
		||||
// This routine may also compute Qᵀ * C.
 | 
			
		||||
//
 | 
			
		||||
// d and e contain the elements of the bidiagonal matrix b. d must have length at
 | 
			
		||||
// least n, and e must have length at least n-1. Dbdsqr will panic if there is
 | 
			
		||||
@@ -35,13 +35,13 @@ import (
 | 
			
		||||
// order.
 | 
			
		||||
//
 | 
			
		||||
// VT is a matrix of size n×ncvt whose elements are stored in vt. The elements
 | 
			
		||||
// of vt are modified to contain P^T * VT on exit. VT is not used if ncvt == 0.
 | 
			
		||||
// of vt are modified to contain Pᵀ * VT on exit. VT is not used if ncvt == 0.
 | 
			
		||||
//
 | 
			
		||||
// U is a matrix of size nru×n whose elements are stored in u. The elements
 | 
			
		||||
// of u are modified to contain U * Q on exit. U is not used if nru == 0.
 | 
			
		||||
//
 | 
			
		||||
// C is a matrix of size n×ncc whose elements are stored in c. The elements
 | 
			
		||||
// of c are modified to contain Q^T * C on exit. C is not used if ncc == 0.
 | 
			
		||||
// of c are modified to contain Qᵀ * C on exit. C is not used if ncc == 0.
 | 
			
		||||
//
 | 
			
		||||
// work contains temporary storage and must have length at least 4*(n-1). Dbdsqr
 | 
			
		||||
// will panic if there is insufficient working memory.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dcombssq.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dcombssq.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
// Copyright ©2019 The Gonum Authors. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
package gonum
 | 
			
		||||
 | 
			
		||||
// Dcombssq adds two scaled sum-of-squares quantities, V := V1 + V2,
 | 
			
		||||
//  V_scale^2 * V_ssq := V1_scale^2 * V1_ssq + V2_scale^2 * V2_ssq
 | 
			
		||||
// and returns the result V.
 | 
			
		||||
//
 | 
			
		||||
// Dcombssq is an internal routine. It is exported for testing purposes.
 | 
			
		||||
func (Implementation) Dcombssq(scale1, ssq1, scale2, ssq2 float64) (scale, ssq float64) {
 | 
			
		||||
	if scale1 >= scale2 {
 | 
			
		||||
		if scale1 != 0 {
 | 
			
		||||
			return scale1, ssq1 + (scale2/scale1)*(scale2/scale1)*ssq2
 | 
			
		||||
		}
 | 
			
		||||
		// If the input is non-negative and we are here, then scale2 must inevitably be 0, too.
 | 
			
		||||
		return 0, 0
 | 
			
		||||
	}
 | 
			
		||||
	return scale2, ssq2 + (scale1/scale2)*(scale1/scale2)*ssq1
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgebak.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgebak.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -10,8 +10,8 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Dgebak updates an n×m matrix V as
 | 
			
		||||
//  V = P D V,        if side == lapack.EVRight,
 | 
			
		||||
//  V = P D^{-1} V,   if side == lapack.EVLeft,
 | 
			
		||||
//  V = P D V       if side == lapack.EVRight,
 | 
			
		||||
//  V = P D^{-1} V  if side == lapack.EVLeft,
 | 
			
		||||
// where P and D are n×n permutation and scaling matrices, respectively,
 | 
			
		||||
// implicitly represented by job, scale, ilo and ihi as returned by Dgebal.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgebal.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgebal.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -15,9 +15,9 @@ import (
 | 
			
		||||
// and scaling. Both steps are optional and depend on the value of job.
 | 
			
		||||
//
 | 
			
		||||
// Permuting consists of applying a permutation matrix P such that the matrix
 | 
			
		||||
// that results from P^T*A*P takes the upper block triangular form
 | 
			
		||||
// that results from Pᵀ*A*P takes the upper block triangular form
 | 
			
		||||
//           [ T1  X  Y  ]
 | 
			
		||||
//  P^T A P = [  0  B  Z  ],
 | 
			
		||||
//  Pᵀ A P = [  0  B  Z  ],
 | 
			
		||||
//           [  0  0  T2 ]
 | 
			
		||||
// where T1 and T2 are upper triangular matrices and B contains at least one
 | 
			
		||||
// nonzero off-diagonal element in each row and column. The indices ilo and ihi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgebd2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgebd2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -8,7 +8,7 @@ import "gonum.org/v1/gonum/blas"
 | 
			
		||||
 | 
			
		||||
// Dgebd2 reduces an m×n matrix A to upper or lower bidiagonal form by an orthogonal
 | 
			
		||||
// transformation.
 | 
			
		||||
//  Q^T * A * P = B
 | 
			
		||||
//  Qᵀ * A * P = B
 | 
			
		||||
// if m >= n, B is upper diagonal, otherwise B is lower bidiagonal.
 | 
			
		||||
// d is the diagonal, len = min(m,n)
 | 
			
		||||
// e is the off-diagonal len = min(m,n)-1
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgebrd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgebrd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,7 +11,7 @@ import (
 | 
			
		||||
 | 
			
		||||
// Dgebrd reduces a general m×n matrix A to upper or lower bidiagonal form B by
 | 
			
		||||
// an orthogonal transformation:
 | 
			
		||||
//  Q^T * A * P = B.
 | 
			
		||||
//  Qᵀ * A * P = B.
 | 
			
		||||
// The diagonal elements of B are stored in d and the off-diagonal elements are stored
 | 
			
		||||
// in e. These are additionally stored along the diagonal of A and the off-diagonal
 | 
			
		||||
// of A. If m >= n B is an upper-bidiagonal matrix, and if m < n B is a
 | 
			
		||||
@@ -24,8 +24,8 @@ import (
 | 
			
		||||
//  if m < n,  Q = H_0 * H_1 * ... * H_{m-2},
 | 
			
		||||
//             P = G_0 * G_1 * ... * G_{m-1},
 | 
			
		||||
// where
 | 
			
		||||
//  H_i = I - tauQ[i] * v_i * v_i^T,
 | 
			
		||||
//  G_i = I - tauP[i] * u_i * u_i^T.
 | 
			
		||||
//  H_i = I - tauQ[i] * v_i * v_iᵀ,
 | 
			
		||||
//  G_i = I - tauP[i] * u_i * u_iᵀ.
 | 
			
		||||
//
 | 
			
		||||
// As an example, on exit the entries of A when m = 6, and n = 5
 | 
			
		||||
//  [ d   e  u1  u1  u1]
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgeev.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgeev.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -19,8 +19,8 @@ import (
 | 
			
		||||
// is defined by
 | 
			
		||||
//  A v_j = λ_j v_j,
 | 
			
		||||
// and the left eigenvector u_j corresponding to an eigenvalue λ_j is defined by
 | 
			
		||||
//  u_j^H A = λ_j u_j^H,
 | 
			
		||||
// where u_j^H is the conjugate transpose of u_j.
 | 
			
		||||
//  u_jᴴ A = λ_j u_jᴴ,
 | 
			
		||||
// where u_jᴴ is the conjugate transpose of u_j.
 | 
			
		||||
//
 | 
			
		||||
// On return, A will be overwritten and the left and right eigenvectors will be
 | 
			
		||||
// stored, respectively, in the columns of the n×n matrices VL and VR in the
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgehd2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgehd2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,13 +7,13 @@ package gonum
 | 
			
		||||
import "gonum.org/v1/gonum/blas"
 | 
			
		||||
 | 
			
		||||
// Dgehd2 reduces a block of a general n×n matrix A to upper Hessenberg form H
 | 
			
		||||
// by an orthogonal similarity transformation Q^T * A * Q = H.
 | 
			
		||||
// by an orthogonal similarity transformation Qᵀ * A * Q = H.
 | 
			
		||||
//
 | 
			
		||||
// The matrix Q is represented as a product of (ihi-ilo) elementary
 | 
			
		||||
// reflectors
 | 
			
		||||
//  Q = H_{ilo} H_{ilo+1} ... H_{ihi-1}.
 | 
			
		||||
// Each H_i has the form
 | 
			
		||||
//  H_i = I - tau[i] * v * v^T
 | 
			
		||||
//  H_i = I - tau[i] * v * vᵀ
 | 
			
		||||
// where v is a real vector with v[0:i+1] = 0, v[i+1] = 1 and v[ihi+1:n] = 0.
 | 
			
		||||
// v[i+2:ihi+1] is stored on exit in A[i+2:ihi+1,i].
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgehrd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgehrd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,13 +11,13 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Dgehrd reduces a block of a real n×n general matrix A to upper Hessenberg
 | 
			
		||||
// form H by an orthogonal similarity transformation Q^T * A * Q = H.
 | 
			
		||||
// form H by an orthogonal similarity transformation Qᵀ * A * Q = H.
 | 
			
		||||
//
 | 
			
		||||
// The matrix Q is represented as a product of (ihi-ilo) elementary
 | 
			
		||||
// reflectors
 | 
			
		||||
//  Q = H_{ilo} H_{ilo+1} ... H_{ihi-1}.
 | 
			
		||||
// Each H_i has the form
 | 
			
		||||
//  H_i = I - tau[i] * v * v^T
 | 
			
		||||
//  H_i = I - tau[i] * v * vᵀ
 | 
			
		||||
// where v is a real vector with v[0:i+1] = 0, v[i+1] = 1 and v[ihi+1:n] = 0.
 | 
			
		||||
// v[i+2:ihi+1] is stored on exit in A[i+2:ihi+1,i].
 | 
			
		||||
//
 | 
			
		||||
@@ -158,12 +158,12 @@ func (impl Implementation) Dgehrd(n, ilo, ihi int, a []float64, lda int, tau, wo
 | 
			
		||||
			ib := min(nb, ihi-i)
 | 
			
		||||
 | 
			
		||||
			// Reduce columns [i:i+ib] to Hessenberg form, returning the
 | 
			
		||||
			// matrices V and T of the block reflector H = I - V*T*V^T
 | 
			
		||||
			// matrices V and T of the block reflector H = I - V*T*Vᵀ
 | 
			
		||||
			// which performs the reduction, and also the matrix Y = A*V*T.
 | 
			
		||||
			impl.Dlahr2(ihi+1, i+1, ib, a[i:], lda, tau[i:], work[iwt:], ldt, work, ldwork)
 | 
			
		||||
 | 
			
		||||
			// Apply the block reflector H to A[:ihi+1,i+ib:ihi+1] from the
 | 
			
		||||
			// right, computing  A := A - Y * V^T. V[i+ib,i+ib-1] must be set
 | 
			
		||||
			// right, computing  A := A - Y * Vᵀ. V[i+ib,i+ib-1] must be set
 | 
			
		||||
			// to 1.
 | 
			
		||||
			ei := a[(i+ib)*lda+i+ib-1]
 | 
			
		||||
			a[(i+ib)*lda+i+ib-1] = 1
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgels.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgels.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -20,7 +20,7 @@ import (
 | 
			
		||||
//  2. If m < n and trans == blas.NoTrans, Dgels finds the minimum norm solution of
 | 
			
		||||
//     A * X = B.
 | 
			
		||||
//  3. If m >= n and trans == blas.Trans, Dgels finds the minimum norm solution of
 | 
			
		||||
//     A^T * X = B.
 | 
			
		||||
//     Aᵀ * X = B.
 | 
			
		||||
//  4. If m < n and trans == blas.Trans, Dgels finds X such that || A*X - B||_2
 | 
			
		||||
//     is minimized.
 | 
			
		||||
// Note that the least-squares solutions (cases 1 and 3) perform the minimization
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgeql2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgeql2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -14,7 +14,7 @@ import "gonum.org/v1/gonum/blas"
 | 
			
		||||
// Q is represented as a product of elementary reflectors,
 | 
			
		||||
//  Q = H_{k-1} * ... * H_1 * H_0
 | 
			
		||||
// where k = min(m,n) and each H_i has the form
 | 
			
		||||
//  H_i = I - tau[i] * v_i * v_i^T
 | 
			
		||||
//  H_i = I - tau[i] * v_i * v_iᵀ
 | 
			
		||||
// Vector v_i has v[m-k+i+1:m] = 0, v[m-k+i] = 1, and v[:m-k+i+1] is stored on
 | 
			
		||||
// exit in A[0:m-k+i-1, n-k+i].
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgeqp3.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgeqp3.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -15,7 +15,7 @@ import (
 | 
			
		||||
// The matrix Q is represented as a product of elementary reflectors
 | 
			
		||||
//  Q = H_0 H_1 . . . H_{k-1}, where k = min(m,n).
 | 
			
		||||
// Each H_i has the form
 | 
			
		||||
//  H_i = I - tau * v * v^T
 | 
			
		||||
//  H_i = I - tau * v * vᵀ
 | 
			
		||||
// where tau and v are real vectors with v[0:i-1] = 0 and v[i] = 1;
 | 
			
		||||
// v[i:m] is stored on exit in A[i:m, i], and tau in tau[i].
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgeqr2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgeqr2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -22,7 +22,7 @@ import "gonum.org/v1/gonum/blas"
 | 
			
		||||
//  v[j] = 0           j < i
 | 
			
		||||
//  v[j] = 1           j == i
 | 
			
		||||
//  v[j] = a[j*lda+i]  j > i
 | 
			
		||||
// and computing H_i = I - tau[i] * v * v^T.
 | 
			
		||||
// and computing H_i = I - tau[i] * v * vᵀ.
 | 
			
		||||
//
 | 
			
		||||
// The orthonormal matrix Q can be constructed from a product of these elementary
 | 
			
		||||
// reflectors, Q = H_0 * H_1 * ... * H_{k-1}, where k = min(m,n).
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgeqrf.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgeqrf.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -85,7 +85,7 @@ func (impl Implementation) Dgeqrf(m, n int, a []float64, lda int, tau, work []fl
 | 
			
		||||
			// Compute the QR factorization of the current block.
 | 
			
		||||
			impl.Dgeqr2(m-i, ib, a[i*lda+i:], lda, tau[i:], work)
 | 
			
		||||
			if i+ib < n {
 | 
			
		||||
				// Form the triangular factor of the block reflector and apply H^T
 | 
			
		||||
				// Form the triangular factor of the block reflector and apply Hᵀ
 | 
			
		||||
				// In Dlarft, work becomes the T matrix.
 | 
			
		||||
				impl.Dlarft(lapack.Forward, lapack.ColumnWise, m-i, ib,
 | 
			
		||||
					a[i*lda+i:], lda,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgerq2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgerq2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -19,7 +19,7 @@ import "gonum.org/v1/gonum/blas"
 | 
			
		||||
// The matrix Q is represented as a product of elementary reflectors
 | 
			
		||||
//  Q = H_0 H_1 . . . H_{min(m,n)-1}.
 | 
			
		||||
// Each H(i) has the form
 | 
			
		||||
//  H_i = I - tau_i * v * v^T
 | 
			
		||||
//  H_i = I - tau_i * v * vᵀ
 | 
			
		||||
// where v is a vector with v[0:n-k+i-1] stored in A[m-k+i, 0:n-k+i-1],
 | 
			
		||||
// v[n-k+i:n] = 0 and v[n-k+i] = 1.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgerqf.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgerqf.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -22,7 +22,7 @@ import (
 | 
			
		||||
// The matrix Q is represented as a product of elementary reflectors
 | 
			
		||||
//  Q = H_0 H_1 . . . H_{min(m,n)-1}.
 | 
			
		||||
// Each H(i) has the form
 | 
			
		||||
//  H_i = I - tau_i * v * v^T
 | 
			
		||||
//  H_i = I - tau_i * v * vᵀ
 | 
			
		||||
// where v is a vector with v[0:n-k+i-1] stored in A[m-k+i, 0:n-k+i-1],
 | 
			
		||||
// v[n-k+i:n] = 0 and v[n-k+i] = 1.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgesvd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgesvd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -17,7 +17,7 @@ const noSVDO = "dgesvd: not coded for overwrite"
 | 
			
		||||
// Dgesvd computes the singular value decomposition of the input matrix A.
 | 
			
		||||
//
 | 
			
		||||
// The singular value decomposition is
 | 
			
		||||
//  A = U * Sigma * V^T
 | 
			
		||||
//  A = U * Sigma * Vᵀ
 | 
			
		||||
// where Sigma is an m×n diagonal matrix containing the singular values of A,
 | 
			
		||||
// U is an m×m orthogonal matrix and V is an n×n orthogonal matrix. The first
 | 
			
		||||
// min(m,n) columns of U and V are the left and right singular vectors of A
 | 
			
		||||
@@ -29,7 +29,7 @@ const noSVDO = "dgesvd: not coded for overwrite"
 | 
			
		||||
//  jobU == lapack.SVDStore     The first min(m,n) columns are returned in u
 | 
			
		||||
//  jobU == lapack.SVDOverwrite The first min(m,n) columns of U are written into a
 | 
			
		||||
//  jobU == lapack.SVDNone      The columns of U are not computed.
 | 
			
		||||
// The behavior is the same for jobVT and the rows of V^T. At most one of jobU
 | 
			
		||||
// The behavior is the same for jobVT and the rows of Vᵀ. At most one of jobU
 | 
			
		||||
// and jobVT can equal lapack.SVDOverwrite, and Dgesvd will panic otherwise.
 | 
			
		||||
//
 | 
			
		||||
// On entry, a contains the data for the m×n matrix A. During the call to Dgesvd
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgetrs.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dgetrs.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,7 +12,7 @@ import (
 | 
			
		||||
// Dgetrs solves a system of equations using an LU factorization.
 | 
			
		||||
// The system of equations solved is
 | 
			
		||||
//  A * X = B  if trans == blas.Trans
 | 
			
		||||
//  A^T * X = B if trans == blas.NoTrans
 | 
			
		||||
//  Aᵀ * X = B if trans == blas.NoTrans
 | 
			
		||||
// A is a general n×n matrix with stride lda. B is a general matrix of size n×nrhs.
 | 
			
		||||
//
 | 
			
		||||
// On entry b contains the elements of the matrix B. On exit, b contains the
 | 
			
		||||
@@ -61,11 +61,11 @@ func (impl Implementation) Dgetrs(trans blas.Transpose, n, nrhs int, a []float64
 | 
			
		||||
			n, nrhs, 1, a, lda, b, ldb)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	// Solve A^T * X = B.
 | 
			
		||||
	// Solve U^T * X = B, updating b.
 | 
			
		||||
	// Solve Aᵀ * X = B.
 | 
			
		||||
	// Solve Uᵀ * X = B, updating b.
 | 
			
		||||
	bi.Dtrsm(blas.Left, blas.Upper, blas.Trans, blas.NonUnit,
 | 
			
		||||
		n, nrhs, 1, a, lda, b, ldb)
 | 
			
		||||
	// Solve L^T * X = B, updating b.
 | 
			
		||||
	// Solve Lᵀ * X = B, updating b.
 | 
			
		||||
	bi.Dtrsm(blas.Left, blas.Lower, blas.Trans, blas.Unit,
 | 
			
		||||
		n, nrhs, 1, a, lda, b, ldb)
 | 
			
		||||
	impl.Dlaswp(nrhs, b, ldb, 0, n-1, ipiv, -1)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dggsvd3.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dggsvd3.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -13,13 +13,13 @@ import (
 | 
			
		||||
 | 
			
		||||
// Dggsvd3 computes the generalized singular value decomposition (GSVD)
 | 
			
		||||
// of an m×n matrix A and p×n matrix B:
 | 
			
		||||
//  U^T*A*Q = D1*[ 0 R ]
 | 
			
		||||
//  Uᵀ*A*Q = D1*[ 0 R ]
 | 
			
		||||
//
 | 
			
		||||
//  V^T*B*Q = D2*[ 0 R ]
 | 
			
		||||
//  Vᵀ*B*Q = D2*[ 0 R ]
 | 
			
		||||
// where U, V and Q are orthogonal matrices.
 | 
			
		||||
//
 | 
			
		||||
// Dggsvd3 returns k and l, the dimensions of the sub-blocks. k+l
 | 
			
		||||
// is the effective numerical rank of the (m+p)×n matrix [ A^T B^T ]^T.
 | 
			
		||||
// is the effective numerical rank of the (m+p)×n matrix [ Aᵀ Bᵀ ]ᵀ.
 | 
			
		||||
// R is a (k+l)×(k+l) nonsingular upper triangular matrix, D1 and
 | 
			
		||||
// D2 are m×(k+l) and p×(k+l) diagonal matrices and of the following
 | 
			
		||||
// structures, respectively:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dggsvp3.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dggsvp3.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -14,16 +14,16 @@ import (
 | 
			
		||||
// Dggsvp3 computes orthogonal matrices U, V and Q such that
 | 
			
		||||
//
 | 
			
		||||
//                  n-k-l  k    l
 | 
			
		||||
//  U^T*A*Q =    k [ 0    A12  A13 ] if m-k-l >= 0;
 | 
			
		||||
//  Uᵀ*A*Q =     k [ 0    A12  A13 ] if m-k-l >= 0;
 | 
			
		||||
//               l [ 0     0   A23 ]
 | 
			
		||||
//           m-k-l [ 0     0    0  ]
 | 
			
		||||
//
 | 
			
		||||
//                  n-k-l  k    l
 | 
			
		||||
//  U^T*A*Q =    k [ 0    A12  A13 ] if m-k-l < 0;
 | 
			
		||||
//  Uᵀ*A*Q =     k [ 0    A12  A13 ] if m-k-l < 0;
 | 
			
		||||
//             m-k [ 0     0   A23 ]
 | 
			
		||||
//
 | 
			
		||||
//                  n-k-l  k    l
 | 
			
		||||
//  V^T*B*Q =    l [ 0     0   B13 ]
 | 
			
		||||
//  Vᵀ*B*Q =     l [ 0     0   B13 ]
 | 
			
		||||
//             p-l [ 0     0    0  ]
 | 
			
		||||
//
 | 
			
		||||
// where the k×k matrix A12 and l×l matrix B13 are non-singular
 | 
			
		||||
@@ -31,7 +31,7 @@ import (
 | 
			
		||||
// otherwise A23 is (m-k)×l upper trapezoidal.
 | 
			
		||||
//
 | 
			
		||||
// Dggsvp3 returns k and l, the dimensions of the sub-blocks. k+l
 | 
			
		||||
// is the effective numerical rank of the (m+p)×n matrix [ A^T B^T ]^T.
 | 
			
		||||
// is the effective numerical rank of the (m+p)×n matrix [ Aᵀ Bᵀ ]ᵀ.
 | 
			
		||||
//
 | 
			
		||||
// jobU, jobV and jobQ are options for computing the orthogonal matrices. The behavior
 | 
			
		||||
// is as follows
 | 
			
		||||
@@ -174,11 +174,11 @@ func (impl Implementation) Dggsvp3(jobU, jobV, jobQ lapack.GSVDJob, m, p, n int,
 | 
			
		||||
		// RQ factorization of [ S11 S12 ]: [ S11 S12 ] = [ 0 S12 ]*Z.
 | 
			
		||||
		impl.Dgerq2(l, n, b, ldb, tau, work)
 | 
			
		||||
 | 
			
		||||
		// Update A := A*Z^T.
 | 
			
		||||
		// Update A := A*Zᵀ.
 | 
			
		||||
		impl.Dormr2(blas.Right, blas.Trans, m, n, l, b, ldb, tau, a, lda, work)
 | 
			
		||||
 | 
			
		||||
		if wantq {
 | 
			
		||||
			// Update Q := Q*Z^T.
 | 
			
		||||
			// Update Q := Q*Zᵀ.
 | 
			
		||||
			impl.Dormr2(blas.Right, blas.Trans, n, n, l, b, ldb, tau, q, ldq, work)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
@@ -197,7 +197,7 @@ func (impl Implementation) Dggsvp3(jobU, jobV, jobQ lapack.GSVDJob, m, p, n int,
 | 
			
		||||
	//
 | 
			
		||||
	// then the following does the complete QR decomposition of A11:
 | 
			
		||||
	//
 | 
			
		||||
	//          A11 = U*[  0  T12 ]*P1^T.
 | 
			
		||||
	//          A11 = U*[  0  T12 ]*P1ᵀ.
 | 
			
		||||
	//                  [  0   0  ]
 | 
			
		||||
	for i := range iwork[:n-l] {
 | 
			
		||||
		iwork[i] = 0
 | 
			
		||||
@@ -211,7 +211,7 @@ func (impl Implementation) Dggsvp3(jobU, jobV, jobQ lapack.GSVDJob, m, p, n int,
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Update A12 := U^T*A12, where A12 = A[0:m, n-l:n].
 | 
			
		||||
	// Update A12 := Uᵀ*A12, where A12 = A[0:m, n-l:n].
 | 
			
		||||
	impl.Dorm2r(blas.Left, blas.Trans, m, l, min(m, n-l), a, lda, tau, a[n-l:], lda, work)
 | 
			
		||||
 | 
			
		||||
	if wantu {
 | 
			
		||||
@@ -245,7 +245,7 @@ func (impl Implementation) Dggsvp3(jobU, jobV, jobQ lapack.GSVDJob, m, p, n int,
 | 
			
		||||
		impl.Dgerq2(k, n-l, a, lda, tau, work)
 | 
			
		||||
 | 
			
		||||
		if wantq {
 | 
			
		||||
			// Update Q[0:n, 0:n-l] := Q[0:n, 0:n-l]*Z1^T.
 | 
			
		||||
			// Update Q[0:n, 0:n-l] := Q[0:n, 0:n-l]*Z1ᵀ.
 | 
			
		||||
			impl.Dorm2r(blas.Right, blas.Trans, n, n-l, k, a, lda, tau, q, ldq, work)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dhseqr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dhseqr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -13,14 +13,14 @@ import (
 | 
			
		||||
 | 
			
		||||
// Dhseqr computes the eigenvalues of an n×n Hessenberg matrix H and,
 | 
			
		||||
// optionally, the matrices T and Z from the Schur decomposition
 | 
			
		||||
//  H = Z T Z^T,
 | 
			
		||||
//  H = Z T Zᵀ,
 | 
			
		||||
// where T is an n×n upper quasi-triangular matrix (the Schur form), and Z is
 | 
			
		||||
// the n×n orthogonal matrix of Schur vectors.
 | 
			
		||||
//
 | 
			
		||||
// Optionally Z may be postmultiplied into an input orthogonal matrix Q so that
 | 
			
		||||
// this routine can give the Schur factorization of a matrix A which has been
 | 
			
		||||
// reduced to the Hessenberg form H by the orthogonal matrix Q:
 | 
			
		||||
//  A = Q H Q^T = (QZ) T (QZ)^T.
 | 
			
		||||
//  A = Q H Qᵀ = (QZ) T (QZ)ᵀ.
 | 
			
		||||
//
 | 
			
		||||
// If job == lapack.EigenvaluesOnly, only the eigenvalues will be computed.
 | 
			
		||||
// If job == lapack.EigenvaluesAndSchur, the eigenvalues and the Schur form T will
 | 
			
		||||
@@ -43,8 +43,8 @@ import (
 | 
			
		||||
// and Dhseqr will panic otherwise. ilo and ihi are typically set by a previous
 | 
			
		||||
// call to Dgebal, otherwise they should be set to 0 and n-1, respectively. It
 | 
			
		||||
// must hold that
 | 
			
		||||
//  0 <= ilo <= ihi < n,     if n > 0,
 | 
			
		||||
//  ilo == 0 and ihi == -1,  if n == 0.
 | 
			
		||||
//  0 <= ilo <= ihi < n     if n > 0,
 | 
			
		||||
//  ilo == 0 and ihi == -1  if n == 0.
 | 
			
		||||
//
 | 
			
		||||
// wr and wi must have length n.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlabrd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlabrd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -25,8 +25,8 @@ import (
 | 
			
		||||
//  Q = H_0 * H_1 * ... * H_{nb-1}
 | 
			
		||||
//  P = G_0 * G_1 * ... * G_{nb-1}
 | 
			
		||||
// where
 | 
			
		||||
//  H_i = I - tauQ[i] * v_i * v_i^T
 | 
			
		||||
//  G_i = I - tauP[i] * u_i * u_i^T
 | 
			
		||||
//  H_i = I - tauQ[i] * v_i * v_iᵀ
 | 
			
		||||
//  G_i = I - tauP[i] * u_i * u_iᵀ
 | 
			
		||||
//
 | 
			
		||||
// As an example, on exit the entries of A when m = 6, n = 5, and nb = 2
 | 
			
		||||
//  [ 1   1  u1  u1  u1]
 | 
			
		||||
@@ -44,7 +44,7 @@ import (
 | 
			
		||||
//
 | 
			
		||||
// Dlabrd also returns the matrices X and Y which are used with U and V to
 | 
			
		||||
// apply the transformation to the unreduced part of the matrix
 | 
			
		||||
//  A := A - V*Y^T - X*U^T
 | 
			
		||||
//  A := A - V*Yᵀ - X*Uᵀ
 | 
			
		||||
// and returns the matrices X and Y which are needed to apply the
 | 
			
		||||
// transformation to the unreduced part of A.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlacn2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlacn2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -18,7 +18,7 @@ import (
 | 
			
		||||
// On the initial call, kase must be 0.
 | 
			
		||||
// In between calls, x must be overwritten by
 | 
			
		||||
//  A * X    if kase was returned as 1,
 | 
			
		||||
//  A^T * X  if kase was returned as 2,
 | 
			
		||||
//  Aᵀ * X   if kase was returned as 2,
 | 
			
		||||
// and all other parameters must not be changed.
 | 
			
		||||
// On the final return, kase is returned as 0, v contains A*W where W is a
 | 
			
		||||
// vector, and est = norm(V)/norm(W) is a lower bound for 1-norm of A.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										32
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlags2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										32
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlags2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,18 +11,18 @@ import "math"
 | 
			
		||||
//
 | 
			
		||||
// If upper is true
 | 
			
		||||
//
 | 
			
		||||
//  U^T*A*Q = U^T*[ a1 a2 ]*Q = [ x  0 ]
 | 
			
		||||
//  Uᵀ*A*Q = Uᵀ*[ a1 a2 ]*Q = [ x  0 ]
 | 
			
		||||
//              [ 0  a3 ]     [ x  x ]
 | 
			
		||||
// and
 | 
			
		||||
//  V^T*B*Q = V^T*[ b1 b2 ]*Q = [ x  0 ]
 | 
			
		||||
//  Vᵀ*B*Q = Vᵀ*[ b1 b2 ]*Q = [ x  0 ]
 | 
			
		||||
//              [ 0  b3 ]     [ x  x ]
 | 
			
		||||
//
 | 
			
		||||
// otherwise
 | 
			
		||||
//
 | 
			
		||||
//  U^T*A*Q = U^T*[ a1 0  ]*Q = [ x  x ]
 | 
			
		||||
//  Uᵀ*A*Q = Uᵀ*[ a1 0  ]*Q = [ x  x ]
 | 
			
		||||
//              [ a2 a3 ]     [ 0  x ]
 | 
			
		||||
// and
 | 
			
		||||
//  V^T*B*Q = V^T*[ b1 0  ]*Q = [ x  x ]
 | 
			
		||||
//  Vᵀ*B*Q = Vᵀ*[ b1 0  ]*Q = [ x  x ]
 | 
			
		||||
//              [ b2 b3 ]     [ 0  x ].
 | 
			
		||||
//
 | 
			
		||||
// The rows of the transformed A and B are parallel, where
 | 
			
		||||
@@ -48,8 +48,8 @@ func (impl Implementation) Dlags2(upper bool, a1, a2, a3, b1, b2, b3 float64) (c
 | 
			
		||||
		_, _, snr, csr, snl, csl := impl.Dlasv2(a, b, d)
 | 
			
		||||
 | 
			
		||||
		if math.Abs(csl) >= math.Abs(snl) || math.Abs(csr) >= math.Abs(snr) {
 | 
			
		||||
			// Compute the [0, 0] and [0, 1] elements of U^T*A and V^T*B,
 | 
			
		||||
			// and [0, 1] element of |U|^T*|A| and |V|^T*|B|.
 | 
			
		||||
			// Compute the [0, 0] and [0, 1] elements of Uᵀ*A and Vᵀ*B,
 | 
			
		||||
			// and [0, 1] element of |U|ᵀ*|A| and |V|ᵀ*|B|.
 | 
			
		||||
 | 
			
		||||
			ua11r := csl * a1
 | 
			
		||||
			ua12 := csl*a2 + snl*a3
 | 
			
		||||
@@ -60,7 +60,7 @@ func (impl Implementation) Dlags2(upper bool, a1, a2, a3, b1, b2, b3 float64) (c
 | 
			
		||||
			aua12 := math.Abs(csl)*math.Abs(a2) + math.Abs(snl)*math.Abs(a3)
 | 
			
		||||
			avb12 := math.Abs(csr)*math.Abs(b2) + math.Abs(snr)*math.Abs(b3)
 | 
			
		||||
 | 
			
		||||
			// Zero [0, 1] elements of U^T*A and V^T*B.
 | 
			
		||||
			// Zero [0, 1] elements of Uᵀ*A and Vᵀ*B.
 | 
			
		||||
			if math.Abs(ua11r)+math.Abs(ua12) != 0 {
 | 
			
		||||
				if aua12/(math.Abs(ua11r)+math.Abs(ua12)) <= avb12/(math.Abs(vb11r)+math.Abs(vb12)) {
 | 
			
		||||
					csq, snq, _ = impl.Dlartg(-ua11r, ua12)
 | 
			
		||||
@@ -76,8 +76,8 @@ func (impl Implementation) Dlags2(upper bool, a1, a2, a3, b1, b2, b3 float64) (c
 | 
			
		||||
			csv = csr
 | 
			
		||||
			snv = -snr
 | 
			
		||||
		} else {
 | 
			
		||||
			// Compute the [1, 0] and [1, 1] elements of U^T*A and V^T*B,
 | 
			
		||||
			// and [1, 1] element of |U|^T*|A| and |V|^T*|B|.
 | 
			
		||||
			// Compute the [1, 0] and [1, 1] elements of Uᵀ*A and Vᵀ*B,
 | 
			
		||||
			// and [1, 1] element of |U|ᵀ*|A| and |V|ᵀ*|B|.
 | 
			
		||||
 | 
			
		||||
			ua21 := -snl * a1
 | 
			
		||||
			ua22 := -snl*a2 + csl*a3
 | 
			
		||||
@@ -88,7 +88,7 @@ func (impl Implementation) Dlags2(upper bool, a1, a2, a3, b1, b2, b3 float64) (c
 | 
			
		||||
			aua22 := math.Abs(snl)*math.Abs(a2) + math.Abs(csl)*math.Abs(a3)
 | 
			
		||||
			avb22 := math.Abs(snr)*math.Abs(b2) + math.Abs(csr)*math.Abs(b3)
 | 
			
		||||
 | 
			
		||||
			// Zero [1, 1] elements of U^T*A and V^T*B, and then swap.
 | 
			
		||||
			// Zero [1, 1] elements of Uᵀ*A and Vᵀ*B, and then swap.
 | 
			
		||||
			if math.Abs(ua21)+math.Abs(ua22) != 0 {
 | 
			
		||||
				if aua22/(math.Abs(ua21)+math.Abs(ua22)) <= avb22/(math.Abs(vb21)+math.Abs(vb22)) {
 | 
			
		||||
					csq, snq, _ = impl.Dlartg(-ua21, ua22)
 | 
			
		||||
@@ -120,8 +120,8 @@ func (impl Implementation) Dlags2(upper bool, a1, a2, a3, b1, b2, b3 float64) (c
 | 
			
		||||
		_, _, snr, csr, snl, csl := impl.Dlasv2(a, c, d)
 | 
			
		||||
 | 
			
		||||
		if math.Abs(csr) >= math.Abs(snr) || math.Abs(csl) >= math.Abs(snl) {
 | 
			
		||||
			// Compute the [1, 0] and [1, 1] elements of U^T*A and V^T*B,
 | 
			
		||||
			// and [1, 0] element of |U|^T*|A| and |V|^T*|B|.
 | 
			
		||||
			// Compute the [1, 0] and [1, 1] elements of Uᵀ*A and Vᵀ*B,
 | 
			
		||||
			// and [1, 0] element of |U|ᵀ*|A| and |V|ᵀ*|B|.
 | 
			
		||||
 | 
			
		||||
			ua21 := -snr*a1 + csr*a2
 | 
			
		||||
			ua22r := csr * a3
 | 
			
		||||
@@ -132,7 +132,7 @@ func (impl Implementation) Dlags2(upper bool, a1, a2, a3, b1, b2, b3 float64) (c
 | 
			
		||||
			aua21 := math.Abs(snr)*math.Abs(a1) + math.Abs(csr)*math.Abs(a2)
 | 
			
		||||
			avb21 := math.Abs(snl)*math.Abs(b1) + math.Abs(csl)*math.Abs(b2)
 | 
			
		||||
 | 
			
		||||
			// Zero [1, 0] elements of U^T*A and V^T*B.
 | 
			
		||||
			// Zero [1, 0] elements of Uᵀ*A and Vᵀ*B.
 | 
			
		||||
			if (math.Abs(ua21) + math.Abs(ua22r)) != 0 {
 | 
			
		||||
				if aua21/(math.Abs(ua21)+math.Abs(ua22r)) <= avb21/(math.Abs(vb21)+math.Abs(vb22r)) {
 | 
			
		||||
					csq, snq, _ = impl.Dlartg(ua22r, ua21)
 | 
			
		||||
@@ -148,8 +148,8 @@ func (impl Implementation) Dlags2(upper bool, a1, a2, a3, b1, b2, b3 float64) (c
 | 
			
		||||
			csv = csl
 | 
			
		||||
			snv = -snl
 | 
			
		||||
		} else {
 | 
			
		||||
			// Compute the [0, 0] and [0, 1] elements of U^T *A and V^T *B,
 | 
			
		||||
			// and [0, 0] element of |U|^T*|A| and |V|^T*|B|.
 | 
			
		||||
			// Compute the [0, 0] and [0, 1] elements of Uᵀ *A and Vᵀ *B,
 | 
			
		||||
			// and [0, 0] element of |U|ᵀ*|A| and |V|ᵀ*|B|.
 | 
			
		||||
 | 
			
		||||
			ua11 := csr*a1 + snr*a2
 | 
			
		||||
			ua12 := snr * a3
 | 
			
		||||
@@ -160,7 +160,7 @@ func (impl Implementation) Dlags2(upper bool, a1, a2, a3, b1, b2, b3 float64) (c
 | 
			
		||||
			aua11 := math.Abs(csr)*math.Abs(a1) + math.Abs(snr)*math.Abs(a2)
 | 
			
		||||
			avb11 := math.Abs(csl)*math.Abs(b1) + math.Abs(snl)*math.Abs(b2)
 | 
			
		||||
 | 
			
		||||
			// Zero [0, 0] elements of U^T*A and V^T*B, and then swap.
 | 
			
		||||
			// Zero [0, 0] elements of Uᵀ*A and Vᵀ*B, and then swap.
 | 
			
		||||
			if (math.Abs(ua11) + math.Abs(ua12)) != 0 {
 | 
			
		||||
				if aua11/(math.Abs(ua11)+math.Abs(ua12)) <= avb11/(math.Abs(vb11)+math.Abs(vb12)) {
 | 
			
		||||
					csq, snq, _ = impl.Dlartg(ua12, ua11)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlahr2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlahr2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,21 +11,21 @@ import (
 | 
			
		||||
 | 
			
		||||
// Dlahr2 reduces the first nb columns of a real general n×(n-k+1) matrix A so
 | 
			
		||||
// that elements below the k-th subdiagonal are zero. The reduction is performed
 | 
			
		||||
// by an orthogonal similarity transformation Q^T * A * Q. Dlahr2 returns the
 | 
			
		||||
// matrices V and T which determine Q as a block reflector I - V*T*V^T, and
 | 
			
		||||
// by an orthogonal similarity transformation Qᵀ * A * Q. Dlahr2 returns the
 | 
			
		||||
// matrices V and T which determine Q as a block reflector I - V*T*Vᵀ, and
 | 
			
		||||
// also the matrix Y = A * V * T.
 | 
			
		||||
//
 | 
			
		||||
// The matrix Q is represented as a product of nb elementary reflectors
 | 
			
		||||
//  Q = H_0 * H_1 * ... * H_{nb-1}.
 | 
			
		||||
// Each H_i has the form
 | 
			
		||||
//  H_i = I - tau[i] * v * v^T,
 | 
			
		||||
//  H_i = I - tau[i] * v * vᵀ,
 | 
			
		||||
// where v is a real vector with v[0:i+k-1] = 0 and v[i+k-1] = 1. v[i+k:n] is
 | 
			
		||||
// stored on exit in A[i+k+1:n,i].
 | 
			
		||||
//
 | 
			
		||||
// The elements of the vectors v together form the (n-k+1)×nb matrix
 | 
			
		||||
// V which is needed, with T and Y, to apply the transformation to the
 | 
			
		||||
// unreduced part of the matrix, using an update of the form
 | 
			
		||||
//  A = (I - V*T*V^T) * (A - Y*V^T).
 | 
			
		||||
//  A = (I - V*T*Vᵀ) * (A - Y*Vᵀ).
 | 
			
		||||
//
 | 
			
		||||
// On entry, a contains the n×(n-k+1) general matrix A. On return, the elements
 | 
			
		||||
// on and above the k-th subdiagonal in the first nb columns are overwritten
 | 
			
		||||
@@ -109,31 +109,31 @@ func (impl Implementation) Dlahr2(n, k, nb int, a []float64, lda int, tau, t []f
 | 
			
		||||
		if i > 0 {
 | 
			
		||||
			// Update A[k:n,i].
 | 
			
		||||
 | 
			
		||||
			// Update i-th column of A - Y * V^T.
 | 
			
		||||
			// Update i-th column of A - Y * Vᵀ.
 | 
			
		||||
			bi.Dgemv(blas.NoTrans, n-k, i,
 | 
			
		||||
				-1, y[k*ldy:], ldy,
 | 
			
		||||
				a[(k+i-1)*lda:], 1,
 | 
			
		||||
				1, a[k*lda+i:], lda)
 | 
			
		||||
 | 
			
		||||
			// Apply I - V * T^T * V^T to this column (call it b)
 | 
			
		||||
			// Apply I - V * Tᵀ * Vᵀ to this column (call it b)
 | 
			
		||||
			// from the left, using the last column of T as
 | 
			
		||||
			// workspace.
 | 
			
		||||
			// Let V = [ V1 ]   and   b = [ b1 ]   (first i rows)
 | 
			
		||||
			//         [ V2 ]             [ b2 ]
 | 
			
		||||
			// where V1 is unit lower triangular.
 | 
			
		||||
			//
 | 
			
		||||
			// w := V1^T * b1.
 | 
			
		||||
			// w := V1ᵀ * b1.
 | 
			
		||||
			bi.Dcopy(i, a[k*lda+i:], lda, t[nb-1:], ldt)
 | 
			
		||||
			bi.Dtrmv(blas.Lower, blas.Trans, blas.Unit, i,
 | 
			
		||||
				a[k*lda:], lda, t[nb-1:], ldt)
 | 
			
		||||
 | 
			
		||||
			// w := w + V2^T * b2.
 | 
			
		||||
			// w := w + V2ᵀ * b2.
 | 
			
		||||
			bi.Dgemv(blas.Trans, n-k-i, i,
 | 
			
		||||
				1, a[(k+i)*lda:], lda,
 | 
			
		||||
				a[(k+i)*lda+i:], lda,
 | 
			
		||||
				1, t[nb-1:], ldt)
 | 
			
		||||
 | 
			
		||||
			// w := T^T * w.
 | 
			
		||||
			// w := Tᵀ * w.
 | 
			
		||||
			bi.Dtrmv(blas.Upper, blas.Trans, blas.NonUnit, i,
 | 
			
		||||
				t, ldt, t[nb-1:], ldt)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlaln2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlaln2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,8 +7,8 @@ package gonum
 | 
			
		||||
import "math"
 | 
			
		||||
 | 
			
		||||
// Dlaln2 solves a linear equation or a system of 2 linear equations of the form
 | 
			
		||||
//  (ca A   - w D) X = scale B,  if trans == false,
 | 
			
		||||
//  (ca A^T - w D) X = scale B,  if trans == true,
 | 
			
		||||
//  (ca A   - w D) X = scale B  if trans == false,
 | 
			
		||||
//  (ca Aᵀ - w D) X = scale B   if trans == true,
 | 
			
		||||
// where A is a na×na real matrix, ca is a real scalar, D is a na×na diagonal
 | 
			
		||||
// real matrix, w is a scalar, real if nw == 1, complex if nw == 2, and X and B
 | 
			
		||||
// are na×1 matrices, real if w is real, complex if w is complex.
 | 
			
		||||
@@ -147,7 +147,7 @@ func (impl Implementation) Dlaln2(trans bool, na, nw int, smin, ca float64, a []
 | 
			
		||||
	// Compute the real part of
 | 
			
		||||
	//  C = ca A   - w D
 | 
			
		||||
	// or
 | 
			
		||||
	//  C = ca A^T - w D.
 | 
			
		||||
	//  C = ca Aᵀ - w D.
 | 
			
		||||
	crv := [4]float64{
 | 
			
		||||
		ca*a[0] - wr*d1,
 | 
			
		||||
		ca * a[1],
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										43
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlange.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										43
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlange.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -10,19 +10,22 @@ import (
 | 
			
		||||
	"gonum.org/v1/gonum/lapack"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Dlange computes the matrix norm of the general m×n matrix a. The input norm
 | 
			
		||||
// specifies the norm computed.
 | 
			
		||||
//  lapack.MaxAbs: the maximum absolute value of an element.
 | 
			
		||||
//  lapack.MaxColumnSum: the maximum column sum of the absolute values of the entries.
 | 
			
		||||
//  lapack.MaxRowSum: the maximum row sum of the absolute values of the entries.
 | 
			
		||||
//  lapack.Frobenius: the square root of the sum of the squares of the entries.
 | 
			
		||||
// If norm == lapack.MaxColumnSum, work must be of length n, and this function will panic otherwise.
 | 
			
		||||
// There are no restrictions on work for the other matrix norms.
 | 
			
		||||
// Dlange returns the value of the specified norm of a general m×n matrix A:
 | 
			
		||||
//  lapack.MaxAbs:       the maximum absolute value of any element.
 | 
			
		||||
//  lapack.MaxColumnSum: the maximum column sum of the absolute values of the elements (1-norm).
 | 
			
		||||
//  lapack.MaxRowSum:    the maximum row sum of the absolute values of the elements (infinity-norm).
 | 
			
		||||
//  lapack.Frobenius:    the square root of the sum of the squares of the elements (Frobenius norm).
 | 
			
		||||
// If norm == lapack.MaxColumnSum, work must be of length n, and this function will
 | 
			
		||||
// panic otherwise. There are no restrictions on work for the other matrix norms.
 | 
			
		||||
func (impl Implementation) Dlange(norm lapack.MatrixNorm, m, n int, a []float64, lda int, work []float64) float64 {
 | 
			
		||||
	// TODO(btracey): These should probably be refactored to use BLAS calls.
 | 
			
		||||
	switch {
 | 
			
		||||
	case norm != lapack.MaxRowSum && norm != lapack.MaxColumnSum && norm != lapack.Frobenius && norm != lapack.MaxAbs:
 | 
			
		||||
		panic(badNorm)
 | 
			
		||||
	case m < 0:
 | 
			
		||||
		panic(mLT0)
 | 
			
		||||
	case n < 0:
 | 
			
		||||
		panic(nLT0)
 | 
			
		||||
	case lda < max(1, n):
 | 
			
		||||
		panic(badLdA)
 | 
			
		||||
	}
 | 
			
		||||
@@ -39,7 +42,8 @@ func (impl Implementation) Dlange(norm lapack.MatrixNorm, m, n int, a []float64,
 | 
			
		||||
		panic(shortWork)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if norm == lapack.MaxAbs {
 | 
			
		||||
	switch norm {
 | 
			
		||||
	case lapack.MaxAbs:
 | 
			
		||||
		var value float64
 | 
			
		||||
		for i := 0; i < m; i++ {
 | 
			
		||||
			for j := 0; j < n; j++ {
 | 
			
		||||
@@ -47,11 +51,7 @@ func (impl Implementation) Dlange(norm lapack.MatrixNorm, m, n int, a []float64,
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return value
 | 
			
		||||
	}
 | 
			
		||||
	if norm == lapack.MaxColumnSum {
 | 
			
		||||
		if len(work) < n {
 | 
			
		||||
			panic(shortWork)
 | 
			
		||||
		}
 | 
			
		||||
	case lapack.MaxColumnSum:
 | 
			
		||||
		for i := 0; i < n; i++ {
 | 
			
		||||
			work[i] = 0
 | 
			
		||||
		}
 | 
			
		||||
@@ -65,8 +65,7 @@ func (impl Implementation) Dlange(norm lapack.MatrixNorm, m, n int, a []float64,
 | 
			
		||||
			value = math.Max(value, work[i])
 | 
			
		||||
		}
 | 
			
		||||
		return value
 | 
			
		||||
	}
 | 
			
		||||
	if norm == lapack.MaxRowSum {
 | 
			
		||||
	case lapack.MaxRowSum:
 | 
			
		||||
		var value float64
 | 
			
		||||
		for i := 0; i < m; i++ {
 | 
			
		||||
			var sum float64
 | 
			
		||||
@@ -76,14 +75,14 @@ func (impl Implementation) Dlange(norm lapack.MatrixNorm, m, n int, a []float64,
 | 
			
		||||
			value = math.Max(value, sum)
 | 
			
		||||
		}
 | 
			
		||||
		return value
 | 
			
		||||
	}
 | 
			
		||||
	// norm == lapack.Frobenius
 | 
			
		||||
	var value float64
 | 
			
		||||
	default:
 | 
			
		||||
		// lapack.Frobenius
 | 
			
		||||
		scale := 0.0
 | 
			
		||||
		sum := 1.0
 | 
			
		||||
		for i := 0; i < m; i++ {
 | 
			
		||||
		scale, sum = impl.Dlassq(n, a[i*lda:], 1, scale, sum)
 | 
			
		||||
			rowscale, rowsum := impl.Dlassq(n, a[i*lda:], 1, 0, 1)
 | 
			
		||||
			scale, sum = impl.Dcombssq(scale, sum, rowscale, rowsum)
 | 
			
		||||
		}
 | 
			
		||||
		return scale * math.Sqrt(sum)
 | 
			
		||||
	}
 | 
			
		||||
	value = scale * math.Sqrt(sum)
 | 
			
		||||
	return value
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										135
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlansb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlansb.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,135 @@
 | 
			
		||||
// Copyright ©2019 The Gonum Authors. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
package gonum
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"math"
 | 
			
		||||
 | 
			
		||||
	"gonum.org/v1/gonum/blas"
 | 
			
		||||
	"gonum.org/v1/gonum/lapack"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Dlansb returns the given norm of an n×n symmetric band matrix with kd
 | 
			
		||||
// super-diagonals.
 | 
			
		||||
//
 | 
			
		||||
// When norm is lapack.MaxColumnSum or lapack.MaxRowSum, the length of work must
 | 
			
		||||
// be at least n.
 | 
			
		||||
func (impl Implementation) Dlansb(norm lapack.MatrixNorm, uplo blas.Uplo, n, kd int, ab []float64, ldab int, work []float64) float64 {
 | 
			
		||||
	switch {
 | 
			
		||||
	case norm != lapack.MaxAbs && norm != lapack.MaxRowSum && norm != lapack.MaxColumnSum && norm != lapack.Frobenius:
 | 
			
		||||
		panic(badNorm)
 | 
			
		||||
	case uplo != blas.Upper && uplo != blas.Lower:
 | 
			
		||||
		panic(badUplo)
 | 
			
		||||
	case n < 0:
 | 
			
		||||
		panic(nLT0)
 | 
			
		||||
	case kd < 0:
 | 
			
		||||
		panic(kdLT0)
 | 
			
		||||
	case ldab < kd+1:
 | 
			
		||||
		panic(badLdA)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Quick return if possible.
 | 
			
		||||
	if n == 0 {
 | 
			
		||||
		return 0
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch {
 | 
			
		||||
	case len(ab) < (n-1)*ldab+kd+1:
 | 
			
		||||
		panic(shortAB)
 | 
			
		||||
	case len(work) < n && (norm == lapack.MaxColumnSum || norm == lapack.MaxRowSum):
 | 
			
		||||
		panic(shortWork)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var value float64
 | 
			
		||||
	switch norm {
 | 
			
		||||
	case lapack.MaxAbs:
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				for j := 0; j < min(n-i, kd+1); j++ {
 | 
			
		||||
					aij := math.Abs(ab[i*ldab+j])
 | 
			
		||||
					if aij > value || math.IsNaN(aij) {
 | 
			
		||||
						value = aij
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				for j := max(0, kd-i); j < kd+1; j++ {
 | 
			
		||||
					aij := math.Abs(ab[i*ldab+j])
 | 
			
		||||
					if aij > value || math.IsNaN(aij) {
 | 
			
		||||
						value = aij
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	case lapack.MaxColumnSum, lapack.MaxRowSum:
 | 
			
		||||
		work = work[:n]
 | 
			
		||||
		var sum float64
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for i := range work {
 | 
			
		||||
				work[i] = 0
 | 
			
		||||
			}
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				sum := work[i] + math.Abs(ab[i*ldab])
 | 
			
		||||
				for j := i + 1; j < min(i+kd+1, n); j++ {
 | 
			
		||||
					aij := math.Abs(ab[i*ldab+j-i])
 | 
			
		||||
					sum += aij
 | 
			
		||||
					work[j] += aij
 | 
			
		||||
				}
 | 
			
		||||
				if sum > value || math.IsNaN(sum) {
 | 
			
		||||
					value = sum
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				sum = 0
 | 
			
		||||
				for j := max(0, i-kd); j < i; j++ {
 | 
			
		||||
					aij := math.Abs(ab[i*ldab+kd+j-i])
 | 
			
		||||
					sum += aij
 | 
			
		||||
					work[j] += aij
 | 
			
		||||
				}
 | 
			
		||||
				work[i] = sum + math.Abs(ab[i*ldab+kd])
 | 
			
		||||
			}
 | 
			
		||||
			for _, sum := range work {
 | 
			
		||||
				if sum > value || math.IsNaN(sum) {
 | 
			
		||||
					value = sum
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	case lapack.Frobenius:
 | 
			
		||||
		scale := 0.0
 | 
			
		||||
		ssq := 1.0
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			if kd > 0 {
 | 
			
		||||
				// Sum off-diagonals.
 | 
			
		||||
				for i := 0; i < n-1; i++ {
 | 
			
		||||
					ilen := min(n-i-1, kd)
 | 
			
		||||
					rowscale, rowssq := impl.Dlassq(ilen, ab[i*ldab+1:], 1, 0, 1)
 | 
			
		||||
					scale, ssq = impl.Dcombssq(scale, ssq, rowscale, rowssq)
 | 
			
		||||
				}
 | 
			
		||||
				ssq *= 2
 | 
			
		||||
			}
 | 
			
		||||
			// Sum diagonal.
 | 
			
		||||
			dscale, dssq := impl.Dlassq(n, ab, ldab, 0, 1)
 | 
			
		||||
			scale, ssq = impl.Dcombssq(scale, ssq, dscale, dssq)
 | 
			
		||||
		} else {
 | 
			
		||||
			if kd > 0 {
 | 
			
		||||
				// Sum off-diagonals.
 | 
			
		||||
				for i := 1; i < n; i++ {
 | 
			
		||||
					ilen := min(i, kd)
 | 
			
		||||
					rowscale, rowssq := impl.Dlassq(ilen, ab[i*ldab+kd-ilen:], 1, 0, 1)
 | 
			
		||||
					scale, ssq = impl.Dcombssq(scale, ssq, rowscale, rowssq)
 | 
			
		||||
				}
 | 
			
		||||
				ssq *= 2
 | 
			
		||||
			}
 | 
			
		||||
			// Sum diagonal.
 | 
			
		||||
			dscale, dssq := impl.Dlassq(n, ab[kd:], ldab, 0, 1)
 | 
			
		||||
			scale, ssq = impl.Dcombssq(scale, ssq, dscale, dssq)
 | 
			
		||||
		}
 | 
			
		||||
		value = scale * math.Sqrt(ssq)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return value
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										44
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlansy.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										44
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlansy.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,8 +11,8 @@ import (
 | 
			
		||||
	"gonum.org/v1/gonum/lapack"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Dlansy computes the specified norm of an n×n symmetric matrix. If
 | 
			
		||||
// norm == lapack.MaxColumnSum or norm == lapackMaxRowSum work must have length
 | 
			
		||||
// Dlansy returns the value of the specified norm of an n×n symmetric matrix. If
 | 
			
		||||
// norm == lapack.MaxColumnSum or norm == lapack.MaxRowSum, work must have length
 | 
			
		||||
// at least n, otherwise work is unused.
 | 
			
		||||
func (impl Implementation) Dlansy(norm lapack.MatrixNorm, uplo blas.Uplo, n int, a []float64, lda int, work []float64) float64 {
 | 
			
		||||
	switch {
 | 
			
		||||
@@ -39,8 +39,6 @@ func (impl Implementation) Dlansy(norm lapack.MatrixNorm, uplo blas.Uplo, n int,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch norm {
 | 
			
		||||
	default:
 | 
			
		||||
		panic(badNorm)
 | 
			
		||||
	case lapack.MaxAbs:
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			var max float64
 | 
			
		||||
@@ -105,28 +103,26 @@ func (impl Implementation) Dlansy(norm lapack.MatrixNorm, uplo blas.Uplo, n int,
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return max
 | 
			
		||||
	case lapack.Frobenius:
 | 
			
		||||
	default:
 | 
			
		||||
		// lapack.Frobenius:
 | 
			
		||||
		scale := 0.0
 | 
			
		||||
		ssq := 1.0
 | 
			
		||||
		// Sum off-diagonals.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			var sum float64
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				v := a[i*lda+i]
 | 
			
		||||
				sum += v * v
 | 
			
		||||
				for j := i + 1; j < n; j++ {
 | 
			
		||||
					v := a[i*lda+j]
 | 
			
		||||
					sum += 2 * v * v
 | 
			
		||||
			for i := 0; i < n-1; i++ {
 | 
			
		||||
				rowscale, rowssq := impl.Dlassq(n-i-1, a[i*lda+i+1:], 1, 0, 1)
 | 
			
		||||
				scale, ssq = impl.Dcombssq(scale, ssq, rowscale, rowssq)
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			for i := 1; i < n; i++ {
 | 
			
		||||
				rowscale, rowssq := impl.Dlassq(i, a[i*lda:], 1, 0, 1)
 | 
			
		||||
				scale, ssq = impl.Dcombssq(scale, ssq, rowscale, rowssq)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
			return math.Sqrt(sum)
 | 
			
		||||
		}
 | 
			
		||||
		var sum float64
 | 
			
		||||
		for i := 0; i < n; i++ {
 | 
			
		||||
			for j := 0; j < i; j++ {
 | 
			
		||||
				v := a[i*lda+j]
 | 
			
		||||
				sum += 2 * v * v
 | 
			
		||||
			}
 | 
			
		||||
			v := a[i*lda+i]
 | 
			
		||||
			sum += v * v
 | 
			
		||||
		}
 | 
			
		||||
		return math.Sqrt(sum)
 | 
			
		||||
		ssq *= 2
 | 
			
		||||
		// Sum diagonal.
 | 
			
		||||
		dscale, dssq := impl.Dlassq(n, a, lda+1, 0, 1)
 | 
			
		||||
		scale, ssq = impl.Dcombssq(scale, ssq, dscale, dssq)
 | 
			
		||||
		return scale * math.Sqrt(ssq)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										46
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlantr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										46
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlantr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -22,6 +22,8 @@ func (impl Implementation) Dlantr(norm lapack.MatrixNorm, uplo blas.Uplo, diag b
 | 
			
		||||
		panic(badUplo)
 | 
			
		||||
	case diag != blas.Unit && diag != blas.NonUnit:
 | 
			
		||||
		panic(badDiag)
 | 
			
		||||
	case m < 0:
 | 
			
		||||
		panic(mLT0)
 | 
			
		||||
	case n < 0:
 | 
			
		||||
		panic(nLT0)
 | 
			
		||||
	case lda < max(1, n):
 | 
			
		||||
@@ -42,8 +44,6 @@ func (impl Implementation) Dlantr(norm lapack.MatrixNorm, uplo blas.Uplo, diag b
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch norm {
 | 
			
		||||
	default:
 | 
			
		||||
		panic(badNorm)
 | 
			
		||||
	case lapack.MaxAbs:
 | 
			
		||||
		if diag == blas.Unit {
 | 
			
		||||
			value := 1.0
 | 
			
		||||
@@ -171,7 +171,7 @@ func (impl Implementation) Dlantr(norm lapack.MatrixNorm, uplo blas.Uplo, diag b
 | 
			
		||||
				}
 | 
			
		||||
				return maxsum
 | 
			
		||||
			} else {
 | 
			
		||||
				for i := 1; i < m; i++ {
 | 
			
		||||
				for i := 0; i < m; i++ {
 | 
			
		||||
					var sum float64
 | 
			
		||||
					if i < minmn {
 | 
			
		||||
						sum = 1
 | 
			
		||||
@@ -219,42 +219,38 @@ func (impl Implementation) Dlantr(norm lapack.MatrixNorm, uplo blas.Uplo, diag b
 | 
			
		||||
				return maxsum
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	case lapack.Frobenius:
 | 
			
		||||
		var nrm float64
 | 
			
		||||
	default:
 | 
			
		||||
		// lapack.Frobenius:
 | 
			
		||||
		var scale, ssq float64
 | 
			
		||||
		if diag == blas.Unit {
 | 
			
		||||
			scale = 1
 | 
			
		||||
			ssq = float64(min(m, n))
 | 
			
		||||
			if uplo == blas.Upper {
 | 
			
		||||
				for i := 0; i < m; i++ {
 | 
			
		||||
					for j := i + 1; j < n; j++ {
 | 
			
		||||
						tmp := a[i*lda+j]
 | 
			
		||||
						nrm += tmp * tmp
 | 
			
		||||
					}
 | 
			
		||||
				for i := 0; i < min(m, n); i++ {
 | 
			
		||||
					rowscale, rowssq := impl.Dlassq(n-i-1, a[i*lda+i+1:], 1, 0, 1)
 | 
			
		||||
					scale, ssq = impl.Dcombssq(scale, ssq, rowscale, rowssq)
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				for i := 1; i < m; i++ {
 | 
			
		||||
					for j := 0; j < min(i, n); j++ {
 | 
			
		||||
						tmp := a[i*lda+j]
 | 
			
		||||
						nrm += tmp * tmp
 | 
			
		||||
					rowscale, rowssq := impl.Dlassq(min(i, n), a[i*lda:], 1, 0, 1)
 | 
			
		||||
					scale, ssq = impl.Dcombssq(scale, ssq, rowscale, rowssq)
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			}
 | 
			
		||||
			nrm += float64(minmn)
 | 
			
		||||
		} else {
 | 
			
		||||
			scale = 0
 | 
			
		||||
			ssq = 1
 | 
			
		||||
			if uplo == blas.Upper {
 | 
			
		||||
				for i := 0; i < m; i++ {
 | 
			
		||||
					for j := i; j < n; j++ {
 | 
			
		||||
						tmp := math.Abs(a[i*lda+j])
 | 
			
		||||
						nrm += tmp * tmp
 | 
			
		||||
					}
 | 
			
		||||
				for i := 0; i < min(m, n); i++ {
 | 
			
		||||
					rowscale, rowssq := impl.Dlassq(n-i, a[i*lda+i:], 1, 0, 1)
 | 
			
		||||
					scale, ssq = impl.Dcombssq(scale, ssq, rowscale, rowssq)
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				for i := 0; i < m; i++ {
 | 
			
		||||
					for j := 0; j <= min(i, n-1); j++ {
 | 
			
		||||
						tmp := math.Abs(a[i*lda+j])
 | 
			
		||||
						nrm += tmp * tmp
 | 
			
		||||
					rowscale, rowssq := impl.Dlassq(min(i+1, n), a[i*lda:], 1, 0, 1)
 | 
			
		||||
					scale, ssq = impl.Dcombssq(scale, ssq, rowscale, rowssq)
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		}
 | 
			
		||||
		return math.Sqrt(nrm)
 | 
			
		||||
		return scale * math.Sqrt(ssq)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlaqp2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlaqp2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -93,7 +93,7 @@ func (impl Implementation) Dlaqp2(m, n, offset int, a []float64, lda int, jpvt [
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if i < n-1 {
 | 
			
		||||
			// Apply H_i^T to A[offset+i:m, i:n] from the left.
 | 
			
		||||
			// Apply H_iᵀ to A[offset+i:m, i:n] from the left.
 | 
			
		||||
			aii := a[offpi*lda+i]
 | 
			
		||||
			a[offpi*lda+i] = 1
 | 
			
		||||
			impl.Dlarf(blas.Left, m-offpi, n-i-1, a[offpi*lda+i:], lda, tau[i], a[offpi*lda+i+1:], lda, work)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlaqps.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlaqps.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -122,7 +122,7 @@ func (impl Implementation) Dlaqps(m, n, offset, nb int, a []float64, lda int, jp
 | 
			
		||||
 | 
			
		||||
		// Apply previous Householder reflectors to column K:
 | 
			
		||||
		//
 | 
			
		||||
		// A[rk:m, k] = A[rk:m, k] - A[rk:m, 0:k-1]*F[k, 0:k-1]^T.
 | 
			
		||||
		// A[rk:m, k] = A[rk:m, k] - A[rk:m, 0:k-1]*F[k, 0:k-1]ᵀ.
 | 
			
		||||
		if k > 0 {
 | 
			
		||||
			bi.Dgemv(blas.NoTrans, m-rk, k, -1,
 | 
			
		||||
				a[rk*lda:], lda,
 | 
			
		||||
@@ -143,7 +143,7 @@ func (impl Implementation) Dlaqps(m, n, offset, nb int, a []float64, lda int, jp
 | 
			
		||||
 | 
			
		||||
		// Compute kth column of F:
 | 
			
		||||
		//
 | 
			
		||||
		// Compute F[k+1:n, k] = tau[k]*A[rk:m, k+1:n]^T*A[rk:m, k].
 | 
			
		||||
		// Compute F[k+1:n, k] = tau[k]*A[rk:m, k+1:n]ᵀ*A[rk:m, k].
 | 
			
		||||
		if k < n-1 {
 | 
			
		||||
			bi.Dgemv(blas.Trans, m-rk, n-k-1, tau[k],
 | 
			
		||||
				a[rk*lda+k+1:], lda,
 | 
			
		||||
@@ -159,7 +159,7 @@ func (impl Implementation) Dlaqps(m, n, offset, nb int, a []float64, lda int, jp
 | 
			
		||||
 | 
			
		||||
		// Incremental updating of F:
 | 
			
		||||
		//
 | 
			
		||||
		// F[0:n, k] := F[0:n, k] - tau[k]*F[0:n, 0:k-1]*A[rk:m, 0:k-1]^T*A[rk:m,k].
 | 
			
		||||
		// F[0:n, k] := F[0:n, k] - tau[k]*F[0:n, 0:k-1]*A[rk:m, 0:k-1]ᵀ*A[rk:m,k].
 | 
			
		||||
		if k > 0 {
 | 
			
		||||
			bi.Dgemv(blas.Trans, m-rk, k, -tau[k],
 | 
			
		||||
				a[rk*lda:], lda,
 | 
			
		||||
@@ -175,7 +175,7 @@ func (impl Implementation) Dlaqps(m, n, offset, nb int, a []float64, lda int, jp
 | 
			
		||||
 | 
			
		||||
		// Update the current row of A:
 | 
			
		||||
		//
 | 
			
		||||
		// A[rk, k+1:n] = A[rk, k+1:n] - A[rk, 0:k]*F[k+1:n, 0:k]^T.
 | 
			
		||||
		// A[rk, k+1:n] = A[rk, k+1:n] - A[rk, 0:k]*F[k+1:n, 0:k]ᵀ.
 | 
			
		||||
		if k < n-1 {
 | 
			
		||||
			bi.Dgemv(blas.NoTrans, n-k-1, k+1, -1,
 | 
			
		||||
				f[(k+1)*ldf:], ldf,
 | 
			
		||||
@@ -216,7 +216,7 @@ func (impl Implementation) Dlaqps(m, n, offset, nb int, a []float64, lda int, jp
 | 
			
		||||
 | 
			
		||||
	// Apply the block reflector to the rest of the matrix:
 | 
			
		||||
	//
 | 
			
		||||
	// A[offset+kb+1:m, kb+1:n] := A[offset+kb+1:m, kb+1:n] - A[offset+kb+1:m, 1:kb]*F[kb+1:n, 1:kb]^T.
 | 
			
		||||
	// A[offset+kb+1:m, kb+1:n] := A[offset+kb+1:m, kb+1:n] - A[offset+kb+1:m, 1:kb]*F[kb+1:n, 1:kb]ᵀ.
 | 
			
		||||
	if kb < min(n, m-offset) {
 | 
			
		||||
		bi.Dgemm(blas.NoTrans, blas.Trans,
 | 
			
		||||
			m-rk, n-kb, kb, -1,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlaqr04.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlaqr04.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,7 +12,7 @@ import (
 | 
			
		||||
 | 
			
		||||
// Dlaqr04 computes the eigenvalues of a block of an n×n upper Hessenberg matrix
 | 
			
		||||
// H, and optionally the matrices T and Z from the Schur decomposition
 | 
			
		||||
//  H = Z T Z^T
 | 
			
		||||
//  H = Z T Zᵀ
 | 
			
		||||
// where T is an upper quasi-triangular matrix (the Schur form), and Z is the
 | 
			
		||||
// orthogonal matrix of Schur vectors.
 | 
			
		||||
//
 | 
			
		||||
@@ -24,8 +24,8 @@ import (
 | 
			
		||||
// Z[iloz:ihiz+1,ilo:ihi+1], otherwise Z will not be referenced.
 | 
			
		||||
//
 | 
			
		||||
// ilo and ihi determine the block of H on which Dlaqr04 operates. It must hold that
 | 
			
		||||
//  0 <= ilo <= ihi < n,     if n > 0,
 | 
			
		||||
//  ilo == 0 and ihi == -1,  if n == 0,
 | 
			
		||||
//  0 <= ilo <= ihi < n     if n > 0,
 | 
			
		||||
//  ilo == 0 and ihi == -1  if n == 0,
 | 
			
		||||
// and the block must be isolated, that is,
 | 
			
		||||
//  ilo == 0   or H[ilo,ilo-1] == 0,
 | 
			
		||||
//  ihi == n-1 or H[ihi+1,ihi] == 0,
 | 
			
		||||
@@ -39,8 +39,8 @@ import (
 | 
			
		||||
// otherwise Dlaqr04 will panic.
 | 
			
		||||
//
 | 
			
		||||
// work must have length at least lwork and lwork must be
 | 
			
		||||
//  lwork >= 1,  if n <= 11,
 | 
			
		||||
//  lwork >= n,  if n > 11,
 | 
			
		||||
//  lwork >= 1  if n <= 11,
 | 
			
		||||
//  lwork >= n  if n > 11,
 | 
			
		||||
// otherwise Dlaqr04 will panic. lwork as large as 6*n may be required for
 | 
			
		||||
// optimal performance. On return, work[0] will contain the optimal value of
 | 
			
		||||
// lwork.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlaqr23.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlaqr23.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -29,8 +29,8 @@ import (
 | 
			
		||||
//
 | 
			
		||||
// ktop and kbot determine a block [ktop:kbot+1,ktop:kbot+1] along the diagonal
 | 
			
		||||
// of H. It must hold that
 | 
			
		||||
//  0 <= ilo <= ihi < n,     if n > 0,
 | 
			
		||||
//  ilo == 0 and ihi == -1,  if n == 0,
 | 
			
		||||
//  0 <= ilo <= ihi < n     if n > 0,
 | 
			
		||||
//  ilo == 0 and ihi == -1  if n == 0,
 | 
			
		||||
// and the block must be isolated, that is, it must hold that
 | 
			
		||||
//  ktop == 0   or H[ktop,ktop-1] == 0,
 | 
			
		||||
//  kbot == n-1 or H[kbot+1,kbot] == 0,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlaqr5.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlaqr5.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -544,12 +544,12 @@ func (impl Implementation) Dlaqr5(wantt, wantz bool, kacc22 int, n, ktop, kbot,
 | 
			
		||||
			// rows get multiplied by zero).
 | 
			
		||||
			impl.Dlacpy(blas.All, knz, jlen, h[(incol+1+j2)*ldh+jcol:], ldh, wh[kzs*ldwh:], ldwh)
 | 
			
		||||
 | 
			
		||||
			// Multiply by U21^T.
 | 
			
		||||
			// Multiply by U21ᵀ.
 | 
			
		||||
			impl.Dlaset(blas.All, kzs, jlen, 0, 0, wh, ldwh)
 | 
			
		||||
			bi.Dtrmm(blas.Left, blas.Upper, blas.Trans, blas.NonUnit, knz, jlen,
 | 
			
		||||
				1, u[j2*ldu+kzs:], ldu, wh[kzs*ldwh:], ldwh)
 | 
			
		||||
 | 
			
		||||
			// Multiply top of H by U11^T.
 | 
			
		||||
			// Multiply top of H by U11ᵀ.
 | 
			
		||||
			bi.Dgemm(blas.Trans, blas.NoTrans, i2, jlen, j2,
 | 
			
		||||
				1, u, ldu, h[(incol+1)*ldh+jcol:], ldh,
 | 
			
		||||
				1, wh, ldwh)
 | 
			
		||||
@@ -557,7 +557,7 @@ func (impl Implementation) Dlaqr5(wantt, wantz bool, kacc22 int, n, ktop, kbot,
 | 
			
		||||
			// Copy top of H to bottom of WH.
 | 
			
		||||
			impl.Dlacpy(blas.All, j2, jlen, h[(incol+1)*ldh+jcol:], ldh, wh[i2*ldwh:], ldwh)
 | 
			
		||||
 | 
			
		||||
			// Multiply by U21^T.
 | 
			
		||||
			// Multiply by U21ᵀ.
 | 
			
		||||
			bi.Dtrmm(blas.Left, blas.Lower, blas.Trans, blas.NonUnit, j2, jlen,
 | 
			
		||||
				1, u[i2:], ldu, wh[i2*ldwh:], ldwh)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlarf.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlarf.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -14,7 +14,7 @@ import (
 | 
			
		||||
//  c = h * c if side == Left
 | 
			
		||||
//  c = c * h if side == right
 | 
			
		||||
// where
 | 
			
		||||
//  h = 1 - tau * v * v^T
 | 
			
		||||
//  h = 1 - tau * v * vᵀ
 | 
			
		||||
// and c is an m * n matrix.
 | 
			
		||||
//
 | 
			
		||||
// work is temporary storage of length at least m if side == Left and at least
 | 
			
		||||
@@ -87,15 +87,15 @@ func (impl Implementation) Dlarf(side blas.Side, m, n int, v []float64, incv int
 | 
			
		||||
	bi := blas64.Implementation()
 | 
			
		||||
	if applyleft {
 | 
			
		||||
		// Form H * C
 | 
			
		||||
		// w[0:lastc+1] = c[1:lastv+1, 1:lastc+1]^T * v[1:lastv+1,1]
 | 
			
		||||
		// w[0:lastc+1] = c[1:lastv+1, 1:lastc+1]ᵀ * v[1:lastv+1,1]
 | 
			
		||||
		bi.Dgemv(blas.Trans, lastv+1, lastc+1, 1, c, ldc, v, incv, 0, work, 1)
 | 
			
		||||
		// c[0: lastv, 0: lastc] = c[...] - w[0:lastv, 1] * v[1:lastc, 1]^T
 | 
			
		||||
		// c[0: lastv, 0: lastc] = c[...] - w[0:lastv, 1] * v[1:lastc, 1]ᵀ
 | 
			
		||||
		bi.Dger(lastv+1, lastc+1, -tau, v, incv, work, 1, c, ldc)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	// Form C*H
 | 
			
		||||
	// w[0:lastc+1,1] := c[0:lastc+1,0:lastv+1] * v[0:lastv+1,1]
 | 
			
		||||
	bi.Dgemv(blas.NoTrans, lastc+1, lastv+1, 1, c, ldc, v, incv, 0, work, 1)
 | 
			
		||||
	// c[0:lastc+1,0:lastv+1] = c[...] - w[0:lastc+1,0] * v[0:lastv+1,0]^T
 | 
			
		||||
	// c[0:lastc+1,0:lastv+1] = c[...] - w[0:lastc+1,0] * v[0:lastv+1,0]ᵀ
 | 
			
		||||
	bi.Dger(lastc+1, lastv+1, -tau, work, 1, v, incv, c, ldc)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										94
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlarfb.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										94
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlarfb.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -15,8 +15,8 @@ import (
 | 
			
		||||
// In the call to Dlarfb, the mxn c is multiplied by the implicitly defined matrix h as follows:
 | 
			
		||||
//  c = h * c   if side == Left and trans == NoTrans
 | 
			
		||||
//  c = c * h   if side == Right and trans == NoTrans
 | 
			
		||||
//  c = h^T * c if side == Left and trans == Trans
 | 
			
		||||
//  c = c * h^T if side == Right and trans == Trans
 | 
			
		||||
//  c = hᵀ * c  if side == Left and trans == Trans
 | 
			
		||||
//  c = c * hᵀ  if side == Right and trans == Trans
 | 
			
		||||
// h is a product of elementary reflectors. direct sets the direction of multiplication
 | 
			
		||||
//  h = h_1 * h_2 * ... * h_k    if direct == Forward
 | 
			
		||||
//  h = h_k * h_k-1 * ... * h_1  if direct == Backward
 | 
			
		||||
@@ -118,13 +118,13 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
	// elements are copied into the columns of the working array. The
 | 
			
		||||
	// loops should go in the other direction so the data is written
 | 
			
		||||
	// into the rows of work so the copy is not strided. A bigger change
 | 
			
		||||
	// would be to replace work with work^T, but benchmarks would be
 | 
			
		||||
	// would be to replace work with workᵀ, but benchmarks would be
 | 
			
		||||
	// needed to see if the change is merited.
 | 
			
		||||
	if store == lapack.ColumnWise {
 | 
			
		||||
		if direct == lapack.Forward {
 | 
			
		||||
			// V1 is the first k rows of C. V2 is the remaining rows.
 | 
			
		||||
			if side == blas.Left {
 | 
			
		||||
				// W = C^T V = C1^T V1 + C2^T V2 (stored in work).
 | 
			
		||||
				// W = Cᵀ V = C1ᵀ V1 + C2ᵀ V2 (stored in work).
 | 
			
		||||
 | 
			
		||||
				// W = C1.
 | 
			
		||||
				for j := 0; j < k; j++ {
 | 
			
		||||
@@ -136,27 +136,27 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
					v, ldv,
 | 
			
		||||
					work, ldwork)
 | 
			
		||||
				if m > k {
 | 
			
		||||
					// W = W + C2^T V2.
 | 
			
		||||
					// W = W + C2ᵀ V2.
 | 
			
		||||
					bi.Dgemm(blas.Trans, blas.NoTrans, n, k, m-k,
 | 
			
		||||
						1, c[k*ldc:], ldc, v[k*ldv:], ldv,
 | 
			
		||||
						1, work, ldwork)
 | 
			
		||||
				}
 | 
			
		||||
				// W = W * T^T or W * T.
 | 
			
		||||
				// W = W * Tᵀ or W * T.
 | 
			
		||||
				bi.Dtrmm(blas.Right, blas.Upper, transt, blas.NonUnit, n, k,
 | 
			
		||||
					1, t, ldt,
 | 
			
		||||
					work, ldwork)
 | 
			
		||||
				// C -= V * W^T.
 | 
			
		||||
				// C -= V * Wᵀ.
 | 
			
		||||
				if m > k {
 | 
			
		||||
					// C2 -= V2 * W^T.
 | 
			
		||||
					// C2 -= V2 * Wᵀ.
 | 
			
		||||
					bi.Dgemm(blas.NoTrans, blas.Trans, m-k, n, k,
 | 
			
		||||
						-1, v[k*ldv:], ldv, work, ldwork,
 | 
			
		||||
						1, c[k*ldc:], ldc)
 | 
			
		||||
				}
 | 
			
		||||
				// W *= V1^T.
 | 
			
		||||
				// W *= V1ᵀ.
 | 
			
		||||
				bi.Dtrmm(blas.Right, blas.Lower, blas.Trans, blas.Unit, n, k,
 | 
			
		||||
					1, v, ldv,
 | 
			
		||||
					work, ldwork)
 | 
			
		||||
				// C1 -= W^T.
 | 
			
		||||
				// C1 -= Wᵀ.
 | 
			
		||||
				// TODO(btracey): This should use blas.Axpy.
 | 
			
		||||
				for i := 0; i < n; i++ {
 | 
			
		||||
					for j := 0; j < k; j++ {
 | 
			
		||||
@@ -165,7 +165,7 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
				}
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
			// Form C = C * H or C * H^T, where C = (C1 C2).
 | 
			
		||||
			// Form C = C * H or C * Hᵀ, where C = (C1 C2).
 | 
			
		||||
 | 
			
		||||
			// W = C1.
 | 
			
		||||
			for i := 0; i < k; i++ {
 | 
			
		||||
@@ -180,7 +180,7 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
					1, c[k:], ldc, v[k*ldv:], ldv,
 | 
			
		||||
					1, work, ldwork)
 | 
			
		||||
			}
 | 
			
		||||
			// W *= T or T^T.
 | 
			
		||||
			// W *= T or Tᵀ.
 | 
			
		||||
			bi.Dtrmm(blas.Right, blas.Upper, trans, blas.NonUnit, m, k,
 | 
			
		||||
				1, t, ldt,
 | 
			
		||||
				work, ldwork)
 | 
			
		||||
@@ -189,7 +189,7 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
					-1, work, ldwork, v[k*ldv:], ldv,
 | 
			
		||||
					1, c[k:], ldc)
 | 
			
		||||
			}
 | 
			
		||||
			// C -= W * V^T.
 | 
			
		||||
			// C -= W * Vᵀ.
 | 
			
		||||
			bi.Dtrmm(blas.Right, blas.Lower, blas.Trans, blas.Unit, m, k,
 | 
			
		||||
				1, v, ldv,
 | 
			
		||||
				work, ldwork)
 | 
			
		||||
@@ -207,9 +207,9 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
		// Where V2 is unit upper triangular.
 | 
			
		||||
		if side == blas.Left {
 | 
			
		||||
			// Form H * C or
 | 
			
		||||
			// W = C^T V.
 | 
			
		||||
			// W = Cᵀ V.
 | 
			
		||||
 | 
			
		||||
			// W = C2^T.
 | 
			
		||||
			// W = C2ᵀ.
 | 
			
		||||
			for j := 0; j < k; j++ {
 | 
			
		||||
				bi.Dcopy(n, c[(m-k+j)*ldc:], 1, work[j:], ldwork)
 | 
			
		||||
			}
 | 
			
		||||
@@ -218,26 +218,26 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
				1, v[(m-k)*ldv:], ldv,
 | 
			
		||||
				work, ldwork)
 | 
			
		||||
			if m > k {
 | 
			
		||||
				// W += C1^T * V1.
 | 
			
		||||
				// W += C1ᵀ * V1.
 | 
			
		||||
				bi.Dgemm(blas.Trans, blas.NoTrans, n, k, m-k,
 | 
			
		||||
					1, c, ldc, v, ldv,
 | 
			
		||||
					1, work, ldwork)
 | 
			
		||||
			}
 | 
			
		||||
			// W *= T or T^T.
 | 
			
		||||
			// W *= T or Tᵀ.
 | 
			
		||||
			bi.Dtrmm(blas.Right, blas.Lower, transt, blas.NonUnit, n, k,
 | 
			
		||||
				1, t, ldt,
 | 
			
		||||
				work, ldwork)
 | 
			
		||||
			// C -= V * W^T.
 | 
			
		||||
			// C -= V * Wᵀ.
 | 
			
		||||
			if m > k {
 | 
			
		||||
				bi.Dgemm(blas.NoTrans, blas.Trans, m-k, n, k,
 | 
			
		||||
					-1, v, ldv, work, ldwork,
 | 
			
		||||
					1, c, ldc)
 | 
			
		||||
			}
 | 
			
		||||
			// W *= V2^T.
 | 
			
		||||
			// W *= V2ᵀ.
 | 
			
		||||
			bi.Dtrmm(blas.Right, blas.Upper, blas.Trans, blas.Unit, n, k,
 | 
			
		||||
				1, v[(m-k)*ldv:], ldv,
 | 
			
		||||
				work, ldwork)
 | 
			
		||||
			// C2 -= W^T.
 | 
			
		||||
			// C2 -= Wᵀ.
 | 
			
		||||
			// TODO(btracey): This should use blas.Axpy.
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				for j := 0; j < k; j++ {
 | 
			
		||||
@@ -246,7 +246,7 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
			}
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		// Form C * H or C * H^T where C = (C1 C2).
 | 
			
		||||
		// Form C * H or C * Hᵀ where C = (C1 C2).
 | 
			
		||||
		// W = C * V.
 | 
			
		||||
 | 
			
		||||
		// W = C2.
 | 
			
		||||
@@ -263,18 +263,18 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
				1, c, ldc, v, ldv,
 | 
			
		||||
				1, work, ldwork)
 | 
			
		||||
		}
 | 
			
		||||
		// W *= T or T^T.
 | 
			
		||||
		// W *= T or Tᵀ.
 | 
			
		||||
		bi.Dtrmm(blas.Right, blas.Lower, trans, blas.NonUnit, m, k,
 | 
			
		||||
			1, t, ldt,
 | 
			
		||||
			work, ldwork)
 | 
			
		||||
		// C -= W * V^T.
 | 
			
		||||
		// C -= W * Vᵀ.
 | 
			
		||||
		if n > k {
 | 
			
		||||
			// C1 -= W * V1^T.
 | 
			
		||||
			// C1 -= W * V1ᵀ.
 | 
			
		||||
			bi.Dgemm(blas.NoTrans, blas.Trans, m, n-k, k,
 | 
			
		||||
				-1, work, ldwork, v, ldv,
 | 
			
		||||
				1, c, ldc)
 | 
			
		||||
		}
 | 
			
		||||
		// W *= V2^T.
 | 
			
		||||
		// W *= V2ᵀ.
 | 
			
		||||
		bi.Dtrmm(blas.Right, blas.Upper, blas.Trans, blas.Unit, m, k,
 | 
			
		||||
			1, v[(n-k)*ldv:], ldv,
 | 
			
		||||
			work, ldwork)
 | 
			
		||||
@@ -291,14 +291,14 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
	if direct == lapack.Forward {
 | 
			
		||||
		// V = (V1 V2) where v1 is unit upper triangular.
 | 
			
		||||
		if side == blas.Left {
 | 
			
		||||
			// Form H * C or H^T * C where C = (C1; C2).
 | 
			
		||||
			// W = C^T * V^T.
 | 
			
		||||
			// Form H * C or Hᵀ * C where C = (C1; C2).
 | 
			
		||||
			// W = Cᵀ * Vᵀ.
 | 
			
		||||
 | 
			
		||||
			// W = C1^T.
 | 
			
		||||
			// W = C1ᵀ.
 | 
			
		||||
			for j := 0; j < k; j++ {
 | 
			
		||||
				bi.Dcopy(n, c[j*ldc:], 1, work[j:], ldwork)
 | 
			
		||||
			}
 | 
			
		||||
			// W *= V1^T.
 | 
			
		||||
			// W *= V1ᵀ.
 | 
			
		||||
			bi.Dtrmm(blas.Right, blas.Upper, blas.Trans, blas.Unit, n, k,
 | 
			
		||||
				1, v, ldv,
 | 
			
		||||
				work, ldwork)
 | 
			
		||||
@@ -307,11 +307,11 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
					1, c[k*ldc:], ldc, v[k:], ldv,
 | 
			
		||||
					1, work, ldwork)
 | 
			
		||||
			}
 | 
			
		||||
			// W *= T or T^T.
 | 
			
		||||
			// W *= T or Tᵀ.
 | 
			
		||||
			bi.Dtrmm(blas.Right, blas.Upper, transt, blas.NonUnit, n, k,
 | 
			
		||||
				1, t, ldt,
 | 
			
		||||
				work, ldwork)
 | 
			
		||||
			// C -= V^T * W^T.
 | 
			
		||||
			// C -= Vᵀ * Wᵀ.
 | 
			
		||||
			if m > k {
 | 
			
		||||
				bi.Dgemm(blas.Trans, blas.Trans, m-k, n, k,
 | 
			
		||||
					-1, v[k:], ldv, work, ldwork,
 | 
			
		||||
@@ -321,7 +321,7 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
			bi.Dtrmm(blas.Right, blas.Upper, blas.NoTrans, blas.Unit, n, k,
 | 
			
		||||
				1, v, ldv,
 | 
			
		||||
				work, ldwork)
 | 
			
		||||
			// C1 -= W^T.
 | 
			
		||||
			// C1 -= Wᵀ.
 | 
			
		||||
			// TODO(btracey): This should use blas.Axpy.
 | 
			
		||||
			for i := 0; i < n; i++ {
 | 
			
		||||
				for j := 0; j < k; j++ {
 | 
			
		||||
@@ -330,14 +330,14 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
			}
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		// Form C * H or C * H^T where C = (C1 C2).
 | 
			
		||||
		// W = C * V^T.
 | 
			
		||||
		// Form C * H or C * Hᵀ where C = (C1 C2).
 | 
			
		||||
		// W = C * Vᵀ.
 | 
			
		||||
 | 
			
		||||
		// W = C1.
 | 
			
		||||
		for j := 0; j < k; j++ {
 | 
			
		||||
			bi.Dcopy(m, c[j:], ldc, work[j:], ldwork)
 | 
			
		||||
		}
 | 
			
		||||
		// W *= V1^T.
 | 
			
		||||
		// W *= V1ᵀ.
 | 
			
		||||
		bi.Dtrmm(blas.Right, blas.Upper, blas.Trans, blas.Unit, m, k,
 | 
			
		||||
			1, v, ldv,
 | 
			
		||||
			work, ldwork)
 | 
			
		||||
@@ -346,7 +346,7 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
				1, c[k:], ldc, v[k:], ldv,
 | 
			
		||||
				1, work, ldwork)
 | 
			
		||||
		}
 | 
			
		||||
		// W *= T or T^T.
 | 
			
		||||
		// W *= T or Tᵀ.
 | 
			
		||||
		bi.Dtrmm(blas.Right, blas.Upper, trans, blas.NonUnit, m, k,
 | 
			
		||||
			1, t, ldt,
 | 
			
		||||
			work, ldwork)
 | 
			
		||||
@@ -371,14 +371,14 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
	}
 | 
			
		||||
	// V = (V1 V2) where V2 is the last k columns and is lower unit triangular.
 | 
			
		||||
	if side == blas.Left {
 | 
			
		||||
		// Form H * C or H^T C where C = (C1 ; C2).
 | 
			
		||||
		// W = C^T * V^T.
 | 
			
		||||
		// Form H * C or Hᵀ C where C = (C1 ; C2).
 | 
			
		||||
		// W = Cᵀ * Vᵀ.
 | 
			
		||||
 | 
			
		||||
		// W = C2^T.
 | 
			
		||||
		// W = C2ᵀ.
 | 
			
		||||
		for j := 0; j < k; j++ {
 | 
			
		||||
			bi.Dcopy(n, c[(m-k+j)*ldc:], 1, work[j:], ldwork)
 | 
			
		||||
		}
 | 
			
		||||
		// W *= V2^T.
 | 
			
		||||
		// W *= V2ᵀ.
 | 
			
		||||
		bi.Dtrmm(blas.Right, blas.Lower, blas.Trans, blas.Unit, n, k,
 | 
			
		||||
			1, v[m-k:], ldv,
 | 
			
		||||
			work, ldwork)
 | 
			
		||||
@@ -387,11 +387,11 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
				1, c, ldc, v, ldv,
 | 
			
		||||
				1, work, ldwork)
 | 
			
		||||
		}
 | 
			
		||||
		// W *= T or T^T.
 | 
			
		||||
		// W *= T or Tᵀ.
 | 
			
		||||
		bi.Dtrmm(blas.Right, blas.Lower, transt, blas.NonUnit, n, k,
 | 
			
		||||
			1, t, ldt,
 | 
			
		||||
			work, ldwork)
 | 
			
		||||
		// C -= V^T * W^T.
 | 
			
		||||
		// C -= Vᵀ * Wᵀ.
 | 
			
		||||
		if m > k {
 | 
			
		||||
			bi.Dgemm(blas.Trans, blas.Trans, m-k, n, k,
 | 
			
		||||
				-1, v, ldv, work, ldwork,
 | 
			
		||||
@@ -401,7 +401,7 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
		bi.Dtrmm(blas.Right, blas.Lower, blas.NoTrans, blas.Unit, n, k,
 | 
			
		||||
			1, v[m-k:], ldv,
 | 
			
		||||
			work, ldwork)
 | 
			
		||||
		// C2 -= W^T.
 | 
			
		||||
		// C2 -= Wᵀ.
 | 
			
		||||
		// TODO(btracey): This should use blas.Axpy.
 | 
			
		||||
		for i := 0; i < n; i++ {
 | 
			
		||||
			for j := 0; j < k; j++ {
 | 
			
		||||
@@ -410,13 +410,13 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
		}
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	// Form C * H or C * H^T where C = (C1 C2).
 | 
			
		||||
	// W = C * V^T.
 | 
			
		||||
	// Form C * H or C * Hᵀ where C = (C1 C2).
 | 
			
		||||
	// W = C * Vᵀ.
 | 
			
		||||
	// W = C2.
 | 
			
		||||
	for j := 0; j < k; j++ {
 | 
			
		||||
		bi.Dcopy(m, c[n-k+j:], ldc, work[j:], ldwork)
 | 
			
		||||
	}
 | 
			
		||||
	// W *= V2^T.
 | 
			
		||||
	// W *= V2ᵀ.
 | 
			
		||||
	bi.Dtrmm(blas.Right, blas.Lower, blas.Trans, blas.Unit, m, k,
 | 
			
		||||
		1, v[n-k:], ldv,
 | 
			
		||||
		work, ldwork)
 | 
			
		||||
@@ -425,7 +425,7 @@ func (Implementation) Dlarfb(side blas.Side, trans blas.Transpose, direct lapack
 | 
			
		||||
			1, c, ldc, v, ldv,
 | 
			
		||||
			1, work, ldwork)
 | 
			
		||||
	}
 | 
			
		||||
	// W *= T or T^T.
 | 
			
		||||
	// W *= T or Tᵀ.
 | 
			
		||||
	bi.Dtrmm(blas.Right, blas.Lower, trans, blas.NonUnit, m, k,
 | 
			
		||||
		1, t, ldt,
 | 
			
		||||
		work, ldwork)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlarfg.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlarfg.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -14,9 +14,9 @@ import (
 | 
			
		||||
// a real elementary reflector of order n such that
 | 
			
		||||
//  H * (alpha) = (beta)
 | 
			
		||||
//      (    x)   (   0)
 | 
			
		||||
//  H^T * H = I
 | 
			
		||||
//  Hᵀ * H = I
 | 
			
		||||
// H is represented in the form
 | 
			
		||||
//  H = 1 - tau * (1; v) * (1 v^T)
 | 
			
		||||
//  H = 1 - tau * (1; v) * (1 vᵀ)
 | 
			
		||||
// where tau is a real scalar.
 | 
			
		||||
//
 | 
			
		||||
// On entry, x contains the vector x, on exit it contains v.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlarft.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlarft.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,8 +12,8 @@ import (
 | 
			
		||||
 | 
			
		||||
// Dlarft forms the triangular factor T of a block reflector H, storing the answer
 | 
			
		||||
// in t.
 | 
			
		||||
//  H = I - V * T * V^T  if store == lapack.ColumnWise
 | 
			
		||||
//  H = I - V^T * T * V  if store == lapack.RowWise
 | 
			
		||||
//  H = I - V * T * Vᵀ  if store == lapack.ColumnWise
 | 
			
		||||
//  H = I - Vᵀ * T * V  if store == lapack.RowWise
 | 
			
		||||
// H is defined by a product of the elementary reflectors where
 | 
			
		||||
//  H = H_0 * H_1 * ... * H_{k-1}  if direct == lapack.Forward
 | 
			
		||||
//  H = H_{k-1} * ... * H_1 * H_0  if direct == lapack.Backward
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlarfx.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlarfx.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,7 +11,7 @@ import "gonum.org/v1/gonum/blas"
 | 
			
		||||
// than 11.
 | 
			
		||||
//
 | 
			
		||||
// H is represented in the form
 | 
			
		||||
//  H = I - tau * v * v^T,
 | 
			
		||||
//  H = I - tau * v * vᵀ,
 | 
			
		||||
// where tau is a real scalar and v is a real vector. If tau = 0, then H is
 | 
			
		||||
// taken to be the identity matrix.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlasr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlasr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,7 +12,7 @@ import (
 | 
			
		||||
// Dlasr applies a sequence of plane rotations to the m×n matrix A. This series
 | 
			
		||||
// of plane rotations is implicitly represented by a matrix P. P is multiplied
 | 
			
		||||
// by a depending on the value of side -- A = P * A if side == lapack.Left,
 | 
			
		||||
// A = A * P^T if side == lapack.Right.
 | 
			
		||||
// A = A * Pᵀ if side == lapack.Right.
 | 
			
		||||
//
 | 
			
		||||
// The exact value of P depends on the value of pivot, but in all cases P is
 | 
			
		||||
// implicitly represented by a series of 2×2 rotation matrices. The entries of
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlasy2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlasy2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,10 +12,10 @@ import (
 | 
			
		||||
 | 
			
		||||
// Dlasy2 solves the Sylvester matrix equation where the matrices are of order 1
 | 
			
		||||
// or 2. It computes the unknown n1×n2 matrix X so that
 | 
			
		||||
//  TL*X   + sgn*X*TR   = scale*B,  if tranl == false and tranr == false,
 | 
			
		||||
//  TL^T*X + sgn*X*TR   = scale*B,  if tranl == true  and tranr == false,
 | 
			
		||||
//  TL*X   + sgn*X*TR^T = scale*B,  if tranl == false and tranr == true,
 | 
			
		||||
//  TL^T*X + sgn*X*TR^T = scale*B,  if tranl == true  and tranr == true,
 | 
			
		||||
//  TL*X   + sgn*X*TR  = scale*B  if tranl == false and tranr == false,
 | 
			
		||||
//  TLᵀ*X + sgn*X*TR   = scale*B  if tranl == true  and tranr == false,
 | 
			
		||||
//  TL*X   + sgn*X*TRᵀ = scale*B  if tranl == false and tranr == true,
 | 
			
		||||
//  TLᵀ*X + sgn*X*TRᵀ  = scale*B  if tranl == true  and tranr == true,
 | 
			
		||||
// where TL is n1×n1, TR is n2×n2, B is n1×n2, and 1 <= n1,n2 <= 2.
 | 
			
		||||
//
 | 
			
		||||
// isgn must be 1 or -1, and n1 and n2 must be 0, 1, or 2, but these conditions
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										452
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlatbs.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										452
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlatbs.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,452 @@
 | 
			
		||||
// Copyright ©2019 The Gonum Authors. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
package gonum
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"math"
 | 
			
		||||
 | 
			
		||||
	"gonum.org/v1/gonum/blas"
 | 
			
		||||
	"gonum.org/v1/gonum/blas/blas64"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Dlatbs solves a triangular banded system of equations
 | 
			
		||||
//  A * x = s*b    if trans == blas.NoTrans
 | 
			
		||||
//  Aᵀ * x = s*b  if trans == blas.Trans or blas.ConjTrans
 | 
			
		||||
// where A is an upper or lower triangular band matrix, x and b are n-element
 | 
			
		||||
// vectors, and s is a scaling factor chosen so that the components of x will be
 | 
			
		||||
// less than the overflow threshold.
 | 
			
		||||
//
 | 
			
		||||
// On entry, x contains the right-hand side b of the triangular system.
 | 
			
		||||
// On return, x is overwritten by the solution vector x.
 | 
			
		||||
//
 | 
			
		||||
// normin specifies whether the cnorm parameter contains the column norms of A on
 | 
			
		||||
// entry. If it is true, cnorm[j] contains the norm of the off-diagonal part of
 | 
			
		||||
// the j-th column of A. If it is false, the norms will be computed and stored
 | 
			
		||||
// in cnorm.
 | 
			
		||||
//
 | 
			
		||||
// Dlatbs returns the scaling factor s for the triangular system. If the matrix
 | 
			
		||||
// A is singular (A[j,j]==0 for some j), then scale is set to 0 and a
 | 
			
		||||
// non-trivial solution to A*x = 0 is returned.
 | 
			
		||||
//
 | 
			
		||||
// Dlatbs is an internal routine. It is exported for testing purposes.
 | 
			
		||||
func (Implementation) Dlatbs(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag, normin bool, n, kd int, ab []float64, ldab int, x, cnorm []float64) (scale float64) {
 | 
			
		||||
	noTran := trans == blas.NoTrans
 | 
			
		||||
	switch {
 | 
			
		||||
	case uplo != blas.Upper && uplo != blas.Lower:
 | 
			
		||||
		panic(badUplo)
 | 
			
		||||
	case !noTran && trans != blas.Trans && trans != blas.ConjTrans:
 | 
			
		||||
		panic(badTrans)
 | 
			
		||||
	case diag != blas.NonUnit && diag != blas.Unit:
 | 
			
		||||
		panic(badDiag)
 | 
			
		||||
	case n < 0:
 | 
			
		||||
		panic(nLT0)
 | 
			
		||||
	case kd < 0:
 | 
			
		||||
		panic(kdLT0)
 | 
			
		||||
	case ldab < kd+1:
 | 
			
		||||
		panic(badLdA)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Quick return if possible.
 | 
			
		||||
	if n == 0 {
 | 
			
		||||
		return 0
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch {
 | 
			
		||||
	case len(ab) < (n-1)*ldab+kd+1:
 | 
			
		||||
		panic(shortAB)
 | 
			
		||||
	case len(x) < n:
 | 
			
		||||
		panic(shortX)
 | 
			
		||||
	case len(cnorm) < n:
 | 
			
		||||
		panic(shortCNorm)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Parameters to control overflow.
 | 
			
		||||
	smlnum := dlamchS / dlamchP
 | 
			
		||||
	bignum := 1 / smlnum
 | 
			
		||||
 | 
			
		||||
	bi := blas64.Implementation()
 | 
			
		||||
	kld := max(1, ldab-1)
 | 
			
		||||
	if !normin {
 | 
			
		||||
		// Compute the 1-norm of each column, not including the diagonal.
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			for j := 0; j < n; j++ {
 | 
			
		||||
				jlen := min(j, kd)
 | 
			
		||||
				if jlen > 0 {
 | 
			
		||||
					cnorm[j] = bi.Dasum(jlen, ab[(j-jlen)*ldab+jlen:], kld)
 | 
			
		||||
				} else {
 | 
			
		||||
					cnorm[j] = 0
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			for j := 0; j < n; j++ {
 | 
			
		||||
				jlen := min(n-j-1, kd)
 | 
			
		||||
				if jlen > 0 {
 | 
			
		||||
					cnorm[j] = bi.Dasum(jlen, ab[(j+1)*ldab+kd-1:], kld)
 | 
			
		||||
				} else {
 | 
			
		||||
					cnorm[j] = 0
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Set up indices and increments for loops below.
 | 
			
		||||
	var (
 | 
			
		||||
		jFirst, jLast, jInc int
 | 
			
		||||
		maind               int
 | 
			
		||||
	)
 | 
			
		||||
	if noTran {
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			jFirst = n - 1
 | 
			
		||||
			jLast = -1
 | 
			
		||||
			jInc = -1
 | 
			
		||||
			maind = 0
 | 
			
		||||
		} else {
 | 
			
		||||
			jFirst = 0
 | 
			
		||||
			jLast = n
 | 
			
		||||
			jInc = 1
 | 
			
		||||
			maind = kd
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			jFirst = 0
 | 
			
		||||
			jLast = n
 | 
			
		||||
			jInc = 1
 | 
			
		||||
			maind = 0
 | 
			
		||||
		} else {
 | 
			
		||||
			jFirst = n - 1
 | 
			
		||||
			jLast = -1
 | 
			
		||||
			jInc = -1
 | 
			
		||||
			maind = kd
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Scale the column norms by tscal if the maximum element in cnorm is
 | 
			
		||||
	// greater than bignum.
 | 
			
		||||
	tmax := cnorm[bi.Idamax(n, cnorm, 1)]
 | 
			
		||||
	tscal := 1.0
 | 
			
		||||
	if tmax > bignum {
 | 
			
		||||
		tscal = 1 / (smlnum * tmax)
 | 
			
		||||
		bi.Dscal(n, tscal, cnorm, 1)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Compute a bound on the computed solution vector to see if the Level 2
 | 
			
		||||
	// BLAS routine Dtbsv can be used.
 | 
			
		||||
 | 
			
		||||
	xMax := math.Abs(x[bi.Idamax(n, x, 1)])
 | 
			
		||||
	xBnd := xMax
 | 
			
		||||
	grow := 0.0
 | 
			
		||||
	// Compute the growth only if the maximum element in cnorm is NOT greater
 | 
			
		||||
	// than bignum.
 | 
			
		||||
	if tscal != 1 {
 | 
			
		||||
		goto skipComputeGrow
 | 
			
		||||
	}
 | 
			
		||||
	if noTran {
 | 
			
		||||
		// Compute the growth in A * x = b.
 | 
			
		||||
		if diag == blas.NonUnit {
 | 
			
		||||
			// A is non-unit triangular.
 | 
			
		||||
			//
 | 
			
		||||
			// Compute grow = 1/G_j and xBnd = 1/M_j.
 | 
			
		||||
			// Initially, G_0 = max{x(i), i=1,...,n}.
 | 
			
		||||
			grow = 1 / math.Max(xBnd, smlnum)
 | 
			
		||||
			xBnd = grow
 | 
			
		||||
			for j := jFirst; j != jLast; j += jInc {
 | 
			
		||||
				if grow <= smlnum {
 | 
			
		||||
					// Exit the loop because the growth factor is too small.
 | 
			
		||||
					goto skipComputeGrow
 | 
			
		||||
				}
 | 
			
		||||
				// M_j = G_{j-1} / abs(A[j,j])
 | 
			
		||||
				tjj := math.Abs(ab[j*ldab+maind])
 | 
			
		||||
				xBnd = math.Min(xBnd, math.Min(1, tjj)*grow)
 | 
			
		||||
				if tjj+cnorm[j] >= smlnum {
 | 
			
		||||
					// G_j = G_{j-1}*( 1 + cnorm[j] / abs(A[j,j]) )
 | 
			
		||||
					grow *= tjj / (tjj + cnorm[j])
 | 
			
		||||
				} else {
 | 
			
		||||
					// G_j could overflow, set grow to 0.
 | 
			
		||||
					grow = 0
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			grow = xBnd
 | 
			
		||||
		} else {
 | 
			
		||||
			// A is unit triangular.
 | 
			
		||||
			//
 | 
			
		||||
			// Compute grow = 1/G_j, where G_0 = max{x(i), i=1,...,n}.
 | 
			
		||||
			grow = math.Min(1, 1/math.Max(xBnd, smlnum))
 | 
			
		||||
			for j := jFirst; j != jLast; j += jInc {
 | 
			
		||||
				if grow <= smlnum {
 | 
			
		||||
					// Exit the loop because the growth factor is too small.
 | 
			
		||||
					goto skipComputeGrow
 | 
			
		||||
				}
 | 
			
		||||
				// G_j = G_{j-1}*( 1 + cnorm[j] )
 | 
			
		||||
				grow /= 1 + cnorm[j]
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Compute the growth in Aᵀ * x = b.
 | 
			
		||||
		if diag == blas.NonUnit {
 | 
			
		||||
			// A is non-unit triangular.
 | 
			
		||||
			//
 | 
			
		||||
			// Compute grow = 1/G_j and xBnd = 1/M_j.
 | 
			
		||||
			// Initially, G_0 = max{x(i), i=1,...,n}.
 | 
			
		||||
			grow = 1 / math.Max(xBnd, smlnum)
 | 
			
		||||
			xBnd = grow
 | 
			
		||||
			for j := jFirst; j != jLast; j += jInc {
 | 
			
		||||
				if grow <= smlnum {
 | 
			
		||||
					// Exit the loop because the growth factor is too small.
 | 
			
		||||
					goto skipComputeGrow
 | 
			
		||||
				}
 | 
			
		||||
				// G_j = max( G_{j-1}, M_{j-1}*( 1 + cnorm[j] ) )
 | 
			
		||||
				xj := 1 + cnorm[j]
 | 
			
		||||
				grow = math.Min(grow, xBnd/xj)
 | 
			
		||||
				// M_j = M_{j-1}*( 1 + cnorm[j] ) / abs(A[j,j])
 | 
			
		||||
				tjj := math.Abs(ab[j*ldab+maind])
 | 
			
		||||
				if xj > tjj {
 | 
			
		||||
					xBnd *= tjj / xj
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			grow = math.Min(grow, xBnd)
 | 
			
		||||
		} else {
 | 
			
		||||
			// A is unit triangular.
 | 
			
		||||
			//
 | 
			
		||||
			// Compute grow = 1/G_j, where G_0 = max{x(i), i=1,...,n}.
 | 
			
		||||
			grow = math.Min(1, 1/math.Max(xBnd, smlnum))
 | 
			
		||||
			for j := jFirst; j != jLast; j += jInc {
 | 
			
		||||
				if grow <= smlnum {
 | 
			
		||||
					// Exit the loop because the growth factor is too small.
 | 
			
		||||
					goto skipComputeGrow
 | 
			
		||||
				}
 | 
			
		||||
				// G_j = G_{j-1}*( 1 + cnorm[j] )
 | 
			
		||||
				grow /= 1 + cnorm[j]
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
skipComputeGrow:
 | 
			
		||||
 | 
			
		||||
	if grow*tscal > smlnum {
 | 
			
		||||
		// The reciprocal of the bound on elements of X is not too small, use
 | 
			
		||||
		// the Level 2 BLAS solve.
 | 
			
		||||
		bi.Dtbsv(uplo, trans, diag, n, kd, ab, ldab, x, 1)
 | 
			
		||||
		// Scale the column norms by 1/tscal for return.
 | 
			
		||||
		if tscal != 1 {
 | 
			
		||||
			bi.Dscal(n, 1/tscal, cnorm, 1)
 | 
			
		||||
		}
 | 
			
		||||
		return 1
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Use a Level 1 BLAS solve, scaling intermediate results.
 | 
			
		||||
 | 
			
		||||
	scale = 1
 | 
			
		||||
	if xMax > bignum {
 | 
			
		||||
		// Scale x so that its components are less than or equal to bignum in
 | 
			
		||||
		// absolute value.
 | 
			
		||||
		scale = bignum / xMax
 | 
			
		||||
		bi.Dscal(n, scale, x, 1)
 | 
			
		||||
		xMax = bignum
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if noTran {
 | 
			
		||||
		// Solve A * x = b.
 | 
			
		||||
		for j := jFirst; j != jLast; j += jInc {
 | 
			
		||||
			// Compute x[j] = b[j] / A[j,j], scaling x if necessary.
 | 
			
		||||
			xj := math.Abs(x[j])
 | 
			
		||||
			tjjs := tscal
 | 
			
		||||
			if diag == blas.NonUnit {
 | 
			
		||||
				tjjs *= ab[j*ldab+maind]
 | 
			
		||||
			}
 | 
			
		||||
			tjj := math.Abs(tjjs)
 | 
			
		||||
			switch {
 | 
			
		||||
			case tjj > smlnum:
 | 
			
		||||
				// smlnum < abs(A[j,j])
 | 
			
		||||
				if tjj < 1 && xj > tjj*bignum {
 | 
			
		||||
					// Scale x by 1/b[j].
 | 
			
		||||
					rec := 1 / xj
 | 
			
		||||
					bi.Dscal(n, rec, x, 1)
 | 
			
		||||
					scale *= rec
 | 
			
		||||
					xMax *= rec
 | 
			
		||||
				}
 | 
			
		||||
				x[j] /= tjjs
 | 
			
		||||
				xj = math.Abs(x[j])
 | 
			
		||||
			case tjj > 0:
 | 
			
		||||
				// 0 < abs(A[j,j]) <= smlnum
 | 
			
		||||
				if xj > tjj*bignum {
 | 
			
		||||
					// Scale x by (1/abs(x[j]))*abs(A[j,j])*bignum to avoid
 | 
			
		||||
					// overflow when dividing by A[j,j].
 | 
			
		||||
					rec := tjj * bignum / xj
 | 
			
		||||
					if cnorm[j] > 1 {
 | 
			
		||||
						// Scale by 1/cnorm[j] to avoid overflow when
 | 
			
		||||
						// multiplying x[j] times column j.
 | 
			
		||||
						rec /= cnorm[j]
 | 
			
		||||
					}
 | 
			
		||||
					bi.Dscal(n, rec, x, 1)
 | 
			
		||||
					scale *= rec
 | 
			
		||||
					xMax *= rec
 | 
			
		||||
				}
 | 
			
		||||
				x[j] /= tjjs
 | 
			
		||||
				xj = math.Abs(x[j])
 | 
			
		||||
			default:
 | 
			
		||||
				// A[j,j] == 0: Set x[0:n] = 0, x[j] = 1, and scale = 0, and
 | 
			
		||||
				// compute a solution to A*x = 0.
 | 
			
		||||
				for i := range x[:n] {
 | 
			
		||||
					x[i] = 0
 | 
			
		||||
				}
 | 
			
		||||
				x[j] = 1
 | 
			
		||||
				xj = 1
 | 
			
		||||
				scale = 0
 | 
			
		||||
				xMax = 0
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Scale x if necessary to avoid overflow when adding a multiple of
 | 
			
		||||
			// column j of A.
 | 
			
		||||
			switch {
 | 
			
		||||
			case xj > 1:
 | 
			
		||||
				rec := 1 / xj
 | 
			
		||||
				if cnorm[j] > (bignum-xMax)*rec {
 | 
			
		||||
					// Scale x by 1/(2*abs(x[j])).
 | 
			
		||||
					rec *= 0.5
 | 
			
		||||
					bi.Dscal(n, rec, x, 1)
 | 
			
		||||
					scale *= rec
 | 
			
		||||
				}
 | 
			
		||||
			case xj*cnorm[j] > bignum-xMax:
 | 
			
		||||
				// Scale x by 1/2.
 | 
			
		||||
				bi.Dscal(n, 0.5, x, 1)
 | 
			
		||||
				scale *= 0.5
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if uplo == blas.Upper {
 | 
			
		||||
				if j > 0 {
 | 
			
		||||
					// Compute the update
 | 
			
		||||
					//  x[max(0,j-kd):j] := x[max(0,j-kd):j] - x[j] * A[max(0,j-kd):j,j]
 | 
			
		||||
					jlen := min(j, kd)
 | 
			
		||||
					if jlen > 0 {
 | 
			
		||||
						bi.Daxpy(jlen, -x[j]*tscal, ab[(j-jlen)*ldab+jlen:], kld, x[j-jlen:], 1)
 | 
			
		||||
					}
 | 
			
		||||
					i := bi.Idamax(j, x, 1)
 | 
			
		||||
					xMax = math.Abs(x[i])
 | 
			
		||||
				}
 | 
			
		||||
			} else if j < n-1 {
 | 
			
		||||
				// Compute the update
 | 
			
		||||
				//  x[j+1:min(j+kd,n)] := x[j+1:min(j+kd,n)] - x[j] * A[j+1:min(j+kd,n),j]
 | 
			
		||||
				jlen := min(kd, n-j-1)
 | 
			
		||||
				if jlen > 0 {
 | 
			
		||||
					bi.Daxpy(jlen, -x[j]*tscal, ab[(j+1)*ldab+kd-1:], kld, x[j+1:], 1)
 | 
			
		||||
				}
 | 
			
		||||
				i := j + 1 + bi.Idamax(n-j-1, x[j+1:], 1)
 | 
			
		||||
				xMax = math.Abs(x[i])
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Solve Aᵀ * x = b.
 | 
			
		||||
		for j := jFirst; j != jLast; j += jInc {
 | 
			
		||||
			// Compute x[j] = b[j] - sum A[k,j]*x[k].
 | 
			
		||||
			//                       k!=j
 | 
			
		||||
			xj := math.Abs(x[j])
 | 
			
		||||
			tjjs := tscal
 | 
			
		||||
			if diag == blas.NonUnit {
 | 
			
		||||
				tjjs *= ab[j*ldab+maind]
 | 
			
		||||
			}
 | 
			
		||||
			tjj := math.Abs(tjjs)
 | 
			
		||||
			rec := 1 / math.Max(1, xMax)
 | 
			
		||||
			uscal := tscal
 | 
			
		||||
			if cnorm[j] > (bignum-xj)*rec {
 | 
			
		||||
				// If x[j] could overflow, scale x by 1/(2*xMax).
 | 
			
		||||
				rec *= 0.5
 | 
			
		||||
				if tjj > 1 {
 | 
			
		||||
					// Divide by A[j,j] when scaling x if A[j,j] > 1.
 | 
			
		||||
					rec = math.Min(1, rec*tjj)
 | 
			
		||||
					uscal /= tjjs
 | 
			
		||||
				}
 | 
			
		||||
				if rec < 1 {
 | 
			
		||||
					bi.Dscal(n, rec, x, 1)
 | 
			
		||||
					scale *= rec
 | 
			
		||||
					xMax *= rec
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			var sumj float64
 | 
			
		||||
			if uscal == 1 {
 | 
			
		||||
				// If the scaling needed for A in the dot product is 1, call
 | 
			
		||||
				// Ddot to perform the dot product...
 | 
			
		||||
				if uplo == blas.Upper {
 | 
			
		||||
					jlen := min(j, kd)
 | 
			
		||||
					if jlen > 0 {
 | 
			
		||||
						sumj = bi.Ddot(jlen, ab[(j-jlen)*ldab+jlen:], kld, x[j-jlen:], 1)
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
					jlen := min(n-j-1, kd)
 | 
			
		||||
					if jlen > 0 {
 | 
			
		||||
						sumj = bi.Ddot(jlen, ab[(j+1)*ldab+kd-1:], kld, x[j+1:], 1)
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				// ...otherwise, use in-line code for the dot product.
 | 
			
		||||
				if uplo == blas.Upper {
 | 
			
		||||
					jlen := min(j, kd)
 | 
			
		||||
					for i := 0; i < jlen; i++ {
 | 
			
		||||
						sumj += (ab[(j-jlen+i)*ldab+jlen-i] * uscal) * x[j-jlen+i]
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
					jlen := min(n-j-1, kd)
 | 
			
		||||
					for i := 0; i < jlen; i++ {
 | 
			
		||||
						sumj += (ab[(j+1+i)*ldab+kd-1-i] * uscal) * x[j+i+1]
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if uscal == tscal {
 | 
			
		||||
				// Compute x[j] := ( x[j] - sumj ) / A[j,j]
 | 
			
		||||
				// if 1/A[j,j] was not used to scale the dot product.
 | 
			
		||||
				x[j] -= sumj
 | 
			
		||||
				xj = math.Abs(x[j])
 | 
			
		||||
				// Compute x[j] = x[j] / A[j,j], scaling if necessary.
 | 
			
		||||
				// Note: the reference implementation skips this step for blas.Unit matrices
 | 
			
		||||
				// when tscal is equal to 1 but it complicates the logic and only saves
 | 
			
		||||
				// the comparison and division in the first switch-case. Not skipping it
 | 
			
		||||
				// is also consistent with the NoTrans case above.
 | 
			
		||||
				switch {
 | 
			
		||||
				case tjj > smlnum:
 | 
			
		||||
					// smlnum < abs(A[j,j]):
 | 
			
		||||
					if tjj < 1 && xj > tjj*bignum {
 | 
			
		||||
						// Scale x by 1/abs(x[j]).
 | 
			
		||||
						rec := 1 / xj
 | 
			
		||||
						bi.Dscal(n, rec, x, 1)
 | 
			
		||||
						scale *= rec
 | 
			
		||||
						xMax *= rec
 | 
			
		||||
					}
 | 
			
		||||
					x[j] /= tjjs
 | 
			
		||||
				case tjj > 0:
 | 
			
		||||
					// 0 < abs(A[j,j]) <= smlnum:
 | 
			
		||||
					if xj > tjj*bignum {
 | 
			
		||||
						// Scale x by (1/abs(x[j]))*abs(A[j,j])*bignum.
 | 
			
		||||
						rec := (tjj * bignum) / xj
 | 
			
		||||
						bi.Dscal(n, rec, x, 1)
 | 
			
		||||
						scale *= rec
 | 
			
		||||
						xMax *= rec
 | 
			
		||||
					}
 | 
			
		||||
					x[j] /= tjjs
 | 
			
		||||
				default:
 | 
			
		||||
					// A[j,j] == 0: Set x[0:n] = 0, x[j] = 1, and scale = 0, and
 | 
			
		||||
					// compute a solution Aᵀ * x = 0.
 | 
			
		||||
					for i := range x[:n] {
 | 
			
		||||
						x[i] = 0
 | 
			
		||||
					}
 | 
			
		||||
					x[j] = 1
 | 
			
		||||
					scale = 0
 | 
			
		||||
					xMax = 0
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				// Compute x[j] := x[j] / A[j,j] - sumj
 | 
			
		||||
				// if the dot product has already been divided by 1/A[j,j].
 | 
			
		||||
				x[j] = x[j]/tjjs - sumj
 | 
			
		||||
			}
 | 
			
		||||
			xMax = math.Max(xMax, math.Abs(x[j]))
 | 
			
		||||
		}
 | 
			
		||||
		scale /= tscal
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Scale the column norms by 1/tscal for return.
 | 
			
		||||
	if tscal != 1 {
 | 
			
		||||
		bi.Dscal(n, 1/tscal, cnorm, 1)
 | 
			
		||||
	}
 | 
			
		||||
	return scale
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlatrd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlatrd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,7 +11,7 @@ import (
 | 
			
		||||
 | 
			
		||||
// Dlatrd reduces nb rows and columns of a real n×n symmetric matrix A to symmetric
 | 
			
		||||
// tridiagonal form. It computes the orthonormal similarity transformation
 | 
			
		||||
//  Q^T * A * Q
 | 
			
		||||
//  Qᵀ * A * Q
 | 
			
		||||
// and returns the matrices V and W to apply to the unreduced part of A. If
 | 
			
		||||
// uplo == blas.Upper, the upper triangle is supplied and the last nb rows are
 | 
			
		||||
// reduced. If uplo == blas.Lower, the lower triangle is supplied and the first
 | 
			
		||||
@@ -51,7 +51,7 @@ import (
 | 
			
		||||
//
 | 
			
		||||
// The matrix Q is represented as a product of elementary reflectors. Each reflector
 | 
			
		||||
// H has the form
 | 
			
		||||
//  I - tau * v * v^T
 | 
			
		||||
//  I - tau * v * vᵀ
 | 
			
		||||
// If uplo == blas.Upper,
 | 
			
		||||
//  Q = H_{n-1} * H_{n-2} * ... * H_{n-nb}
 | 
			
		||||
// where v[:i-1] is stored in A[:i-1,i], v[i-1] = 1, and v[i:n] = 0.
 | 
			
		||||
@@ -62,7 +62,7 @@ import (
 | 
			
		||||
//
 | 
			
		||||
// The vectors v form the n×nb matrix V which is used with W to apply a
 | 
			
		||||
// symmetric rank-2 update to the unreduced part of A
 | 
			
		||||
//  A = A - V * W^T - W * V^T
 | 
			
		||||
//  A = A - V * Wᵀ - W * Vᵀ
 | 
			
		||||
//
 | 
			
		||||
// Dlatrd is an internal routine. It is exported for testing purposes.
 | 
			
		||||
func (impl Implementation) Dlatrd(uplo blas.Uplo, n, nb int, a []float64, lda int, e, tau, w []float64, ldw int) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlatrs.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlatrs.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -14,7 +14,7 @@ import (
 | 
			
		||||
// Dlatrs solves a triangular system of equations scaled to prevent overflow. It
 | 
			
		||||
// solves
 | 
			
		||||
//  A * x = scale * b if trans == blas.NoTrans
 | 
			
		||||
//  A^T * x = scale * b if trans == blas.Trans
 | 
			
		||||
//  Aᵀ * x = scale * b if trans == blas.Trans
 | 
			
		||||
// where the scale s is set for numeric stability.
 | 
			
		||||
//
 | 
			
		||||
// A is an n×n triangular matrix. On entry, the slice x contains the values of
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlauu2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlauu2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -10,8 +10,8 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Dlauu2 computes the product
 | 
			
		||||
//  U * U^T  if uplo is blas.Upper
 | 
			
		||||
//  L^T * L  if uplo is blas.Lower
 | 
			
		||||
//  U * Uᵀ  if uplo is blas.Upper
 | 
			
		||||
//  Lᵀ * L  if uplo is blas.Lower
 | 
			
		||||
// where U or L is stored in the upper or lower triangular part of A.
 | 
			
		||||
// Only the upper or lower triangle of the result is stored, overwriting
 | 
			
		||||
// the corresponding factor in A.
 | 
			
		||||
@@ -37,7 +37,7 @@ func (impl Implementation) Dlauu2(uplo blas.Uplo, n int, a []float64, lda int) {
 | 
			
		||||
	bi := blas64.Implementation()
 | 
			
		||||
 | 
			
		||||
	if uplo == blas.Upper {
 | 
			
		||||
		// Compute the product U*U^T.
 | 
			
		||||
		// Compute the product U*Uᵀ.
 | 
			
		||||
		for i := 0; i < n; i++ {
 | 
			
		||||
			aii := a[i*lda+i]
 | 
			
		||||
			if i < n-1 {
 | 
			
		||||
@@ -49,7 +49,7 @@ func (impl Implementation) Dlauu2(uplo blas.Uplo, n int, a []float64, lda int) {
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Compute the product L^T*L.
 | 
			
		||||
		// Compute the product Lᵀ*L.
 | 
			
		||||
		for i := 0; i < n; i++ {
 | 
			
		||||
			aii := a[i*lda+i]
 | 
			
		||||
			if i < n-1 {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlauum.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dlauum.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -10,8 +10,8 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Dlauum computes the product
 | 
			
		||||
//  U * U^T  if uplo is blas.Upper
 | 
			
		||||
//  L^T * L  if uplo is blas.Lower
 | 
			
		||||
//  U * Uᵀ  if uplo is blas.Upper
 | 
			
		||||
//  Lᵀ * L  if uplo is blas.Lower
 | 
			
		||||
// where U or L is stored in the upper or lower triangular part of A.
 | 
			
		||||
// Only the upper or lower triangle of the result is stored, overwriting
 | 
			
		||||
// the corresponding factor in A.
 | 
			
		||||
@@ -50,7 +50,7 @@ func (impl Implementation) Dlauum(uplo blas.Uplo, n int, a []float64, lda int) {
 | 
			
		||||
	// Use blocked code.
 | 
			
		||||
	bi := blas64.Implementation()
 | 
			
		||||
	if uplo == blas.Upper {
 | 
			
		||||
		// Compute the product U*U^T.
 | 
			
		||||
		// Compute the product U*Uᵀ.
 | 
			
		||||
		for i := 0; i < n; i += nb {
 | 
			
		||||
			ib := min(nb, n-i)
 | 
			
		||||
			bi.Dtrmm(blas.Right, blas.Upper, blas.Trans, blas.NonUnit,
 | 
			
		||||
@@ -64,7 +64,7 @@ func (impl Implementation) Dlauum(uplo blas.Uplo, n int, a []float64, lda int) {
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Compute the product L^T*L.
 | 
			
		||||
		// Compute the product Lᵀ*L.
 | 
			
		||||
		for i := 0; i < n; i += nb {
 | 
			
		||||
			ib := min(nb, n-i)
 | 
			
		||||
			bi.Dtrmm(blas.Left, blas.Lower, blas.Trans, blas.NonUnit,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dorgbr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dorgbr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -6,17 +6,17 @@ package gonum
 | 
			
		||||
 | 
			
		||||
import "gonum.org/v1/gonum/lapack"
 | 
			
		||||
 | 
			
		||||
// Dorgbr generates one of the matrices Q or P^T computed by Dgebrd
 | 
			
		||||
// Dorgbr generates one of the matrices Q or Pᵀ computed by Dgebrd
 | 
			
		||||
// computed from the decomposition Dgebrd. See Dgebd2 for the description of
 | 
			
		||||
// Q and P^T.
 | 
			
		||||
// Q and Pᵀ.
 | 
			
		||||
//
 | 
			
		||||
// If vect == lapack.GenerateQ, then a is assumed to have been an m×k matrix and
 | 
			
		||||
// Q is of order m. If m >= k, then Dorgbr returns the first n columns of Q
 | 
			
		||||
// where m >= n >= k. If m < k, then Dorgbr returns Q as an m×m matrix.
 | 
			
		||||
//
 | 
			
		||||
// If vect == lapack.GeneratePT, then A is assumed to have been a k×n matrix, and
 | 
			
		||||
// P^T is of order n. If k < n, then Dorgbr returns the first m rows of P^T,
 | 
			
		||||
// where n >= m >= k. If k >= n, then Dorgbr returns P^T as an n×n matrix.
 | 
			
		||||
// Pᵀ is of order n. If k < n, then Dorgbr returns the first m rows of Pᵀ,
 | 
			
		||||
// where n >= m >= k. If k >= n, then Dorgbr returns Pᵀ as an n×n matrix.
 | 
			
		||||
//
 | 
			
		||||
// Dorgbr is an internal routine. It is exported for testing purposes.
 | 
			
		||||
func (impl Implementation) Dorgbr(vect lapack.GenOrtho, m, n, k int, a []float64, lda int, tau, work []float64, lwork int) {
 | 
			
		||||
@@ -112,12 +112,12 @@ func (impl Implementation) Dorgbr(vect lapack.GenOrtho, m, n, k int, a []float64
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Form P^T, determined by a call to Dgebrd to reduce a k×n matrix.
 | 
			
		||||
		// Form Pᵀ, determined by a call to Dgebrd to reduce a k×n matrix.
 | 
			
		||||
		if k < n {
 | 
			
		||||
			impl.Dorglq(m, n, k, a, lda, tau, work, lwork)
 | 
			
		||||
		} else {
 | 
			
		||||
			// Shift the vectors which define the elementary reflectors one
 | 
			
		||||
			// row downward, and set the first row and column of P^T to
 | 
			
		||||
			// row downward, and set the first row and column of Pᵀ to
 | 
			
		||||
			// those of the unit matrix.
 | 
			
		||||
			a[0] = 1
 | 
			
		||||
			for i := 1; i < n; i++ {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dorghr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dorghr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -15,8 +15,8 @@ package gonum
 | 
			
		||||
//
 | 
			
		||||
// ilo and ihi must have the same values as in the previous call of Dgehrd. It
 | 
			
		||||
// must hold that
 | 
			
		||||
//  0 <= ilo <= ihi < n,  if n > 0,
 | 
			
		||||
//  ilo = 0, ihi = -1,    if n == 0.
 | 
			
		||||
//  0 <= ilo <= ihi < n  if n > 0,
 | 
			
		||||
//  ilo = 0, ihi = -1    if n == 0.
 | 
			
		||||
//
 | 
			
		||||
// tau contains the scalar factors of the elementary reflectors, as returned by
 | 
			
		||||
// Dgehrd. tau must have length n-1.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dorm2r.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dorm2r.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -9,9 +9,9 @@ import "gonum.org/v1/gonum/blas"
 | 
			
		||||
// Dorm2r multiplies a general matrix C by an orthogonal matrix from a QR factorization
 | 
			
		||||
// determined by Dgeqrf.
 | 
			
		||||
//  C = Q * C   if side == blas.Left and trans == blas.NoTrans
 | 
			
		||||
//  C = Q^T * C  if side == blas.Left and trans == blas.Trans
 | 
			
		||||
//  C = Qᵀ * C  if side == blas.Left and trans == blas.Trans
 | 
			
		||||
//  C = C * Q   if side == blas.Right and trans == blas.NoTrans
 | 
			
		||||
//  C = C * Q^T  if side == blas.Right and trans == blas.Trans
 | 
			
		||||
//  C = C * Qᵀ  if side == blas.Right and trans == blas.Trans
 | 
			
		||||
// If side == blas.Left, a is a matrix of size m×k, and if side == blas.Right
 | 
			
		||||
// a is of size n×k.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dormbr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dormbr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -15,15 +15,15 @@ import (
 | 
			
		||||
// Dormbr overwrites the m×n matrix C with
 | 
			
		||||
//  Q * C   if vect == lapack.ApplyQ, side == blas.Left, and trans == blas.NoTrans
 | 
			
		||||
//  C * Q   if vect == lapack.ApplyQ, side == blas.Right, and trans == blas.NoTrans
 | 
			
		||||
//  Q^T * C if vect == lapack.ApplyQ, side == blas.Left, and trans == blas.Trans
 | 
			
		||||
//  C * Q^T if vect == lapack.ApplyQ, side == blas.Right, and trans == blas.Trans
 | 
			
		||||
//  Qᵀ * C  if vect == lapack.ApplyQ, side == blas.Left, and trans == blas.Trans
 | 
			
		||||
//  C * Qᵀ  if vect == lapack.ApplyQ, side == blas.Right, and trans == blas.Trans
 | 
			
		||||
//
 | 
			
		||||
//  P * C   if vect == lapack.ApplyP, side == blas.Left, and trans == blas.NoTrans
 | 
			
		||||
//  C * P   if vect == lapack.ApplyP, side == blas.Right, and trans == blas.NoTrans
 | 
			
		||||
//  P^T * C if vect == lapack.ApplyP, side == blas.Left, and trans == blas.Trans
 | 
			
		||||
//  C * P^T if vect == lapack.ApplyP, side == blas.Right, and trans == blas.Trans
 | 
			
		||||
//  Pᵀ * C  if vect == lapack.ApplyP, side == blas.Left, and trans == blas.Trans
 | 
			
		||||
//  C * Pᵀ  if vect == lapack.ApplyP, side == blas.Right, and trans == blas.Trans
 | 
			
		||||
// where P and Q are the orthogonal matrices determined by Dgebrd when reducing
 | 
			
		||||
// a matrix A to bidiagonal form: A = Q * B * P^T. See Dgebrd for the
 | 
			
		||||
// a matrix A to bidiagonal form: A = Q * B * Pᵀ. See Dgebrd for the
 | 
			
		||||
// definitions of Q and P.
 | 
			
		||||
//
 | 
			
		||||
// If vect == lapack.ApplyQ, A is assumed to have been an nq×k matrix, while if
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dormhr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dormhr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,10 +7,10 @@ package gonum
 | 
			
		||||
import "gonum.org/v1/gonum/blas"
 | 
			
		||||
 | 
			
		||||
// Dormhr multiplies an m×n general matrix C with an nq×nq orthogonal matrix Q
 | 
			
		||||
//  Q * C,    if side == blas.Left and trans == blas.NoTrans,
 | 
			
		||||
//  Q^T * C,  if side == blas.Left and trans == blas.Trans,
 | 
			
		||||
//  C * Q,    if side == blas.Right and trans == blas.NoTrans,
 | 
			
		||||
//  C * Q^T,  if side == blas.Right and trans == blas.Trans,
 | 
			
		||||
//  Q * C   if side == blas.Left  and trans == blas.NoTrans,
 | 
			
		||||
//  Qᵀ * C  if side == blas.Left  and trans == blas.Trans,
 | 
			
		||||
//  C * Q   if side == blas.Right and trans == blas.NoTrans,
 | 
			
		||||
//  C * Qᵀ  if side == blas.Right and trans == blas.Trans,
 | 
			
		||||
// where nq == m if side == blas.Left and nq == n if side == blas.Right.
 | 
			
		||||
//
 | 
			
		||||
// Q is defined implicitly as the product of ihi-ilo elementary reflectors, as
 | 
			
		||||
@@ -21,10 +21,10 @@ import "gonum.org/v1/gonum/blas"
 | 
			
		||||
//
 | 
			
		||||
// ilo and ihi must have the same values as in the previous call of Dgehrd. It
 | 
			
		||||
// must hold that
 | 
			
		||||
//  0 <= ilo <= ihi < m,   if m > 0 and side == blas.Left,
 | 
			
		||||
//  ilo = 0 and ihi = -1,  if m = 0 and side == blas.Left,
 | 
			
		||||
//  0 <= ilo <= ihi < n,   if n > 0 and side == blas.Right,
 | 
			
		||||
//  ilo = 0 and ihi = -1,  if n = 0 and side == blas.Right.
 | 
			
		||||
//  0 <= ilo <= ihi < m   if m > 0 and side == blas.Left,
 | 
			
		||||
//  ilo = 0 and ihi = -1  if m = 0 and side == blas.Left,
 | 
			
		||||
//  0 <= ilo <= ihi < n   if n > 0 and side == blas.Right,
 | 
			
		||||
//  ilo = 0 and ihi = -1  if n = 0 and side == blas.Right.
 | 
			
		||||
//
 | 
			
		||||
// a and lda represent an m×m matrix if side == blas.Left and an n×n matrix if
 | 
			
		||||
// side == blas.Right. The matrix contains vectors which define the elementary
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dorml2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dorml2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -9,9 +9,9 @@ import "gonum.org/v1/gonum/blas"
 | 
			
		||||
// Dorml2 multiplies a general matrix C by an orthogonal matrix from an LQ factorization
 | 
			
		||||
// determined by Dgelqf.
 | 
			
		||||
//  C = Q * C   if side == blas.Left and trans == blas.NoTrans
 | 
			
		||||
//  C = Q^T * C  if side == blas.Left and trans == blas.Trans
 | 
			
		||||
//  C = Qᵀ * C  if side == blas.Left and trans == blas.Trans
 | 
			
		||||
//  C = C * Q   if side == blas.Right and trans == blas.NoTrans
 | 
			
		||||
//  C = C * Q^T  if side == blas.Right and trans == blas.Trans
 | 
			
		||||
//  C = C * Qᵀ  if side == blas.Right and trans == blas.Trans
 | 
			
		||||
// If side == blas.Left, a is a matrix of side k×m, and if side == blas.Right
 | 
			
		||||
// a is of size k×n.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dormlq.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dormlq.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,9 +12,9 @@ import (
 | 
			
		||||
// Dormlq multiplies the matrix C by the orthogonal matrix Q defined by the
 | 
			
		||||
// slices a and tau. A and tau are as returned from Dgelqf.
 | 
			
		||||
//  C = Q * C   if side == blas.Left and trans == blas.NoTrans
 | 
			
		||||
//  C = Q^T * C  if side == blas.Left and trans == blas.Trans
 | 
			
		||||
//  C = Qᵀ * C  if side == blas.Left and trans == blas.Trans
 | 
			
		||||
//  C = C * Q   if side == blas.Right and trans == blas.NoTrans
 | 
			
		||||
//  C = C * Q^T  if side == blas.Right and trans == blas.Trans
 | 
			
		||||
//  C = C * Qᵀ  if side == blas.Right and trans == blas.Trans
 | 
			
		||||
// If side == blas.Left, A is a matrix of side k×m, and if side == blas.Right
 | 
			
		||||
// A is of size k×n. This uses a blocked algorithm.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dormqr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dormqr.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -10,10 +10,10 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Dormqr multiplies an m×n matrix C by an orthogonal matrix Q as
 | 
			
		||||
//  C = Q * C,    if side == blas.Left  and trans == blas.NoTrans,
 | 
			
		||||
//  C = Q^T * C,  if side == blas.Left  and trans == blas.Trans,
 | 
			
		||||
//  C = C * Q,    if side == blas.Right and trans == blas.NoTrans,
 | 
			
		||||
//  C = C * Q^T,  if side == blas.Right and trans == blas.Trans,
 | 
			
		||||
//  C = Q * C   if side == blas.Left  and trans == blas.NoTrans,
 | 
			
		||||
//  C = Qᵀ * C  if side == blas.Left  and trans == blas.Trans,
 | 
			
		||||
//  C = C * Q   if side == blas.Right and trans == blas.NoTrans,
 | 
			
		||||
//  C = C * Qᵀ  if side == blas.Right and trans == blas.Trans,
 | 
			
		||||
// where Q is defined as the product of k elementary reflectors
 | 
			
		||||
//  Q = H_0 * H_1 * ... * H_{k-1}.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dormr2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dormr2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -9,9 +9,9 @@ import "gonum.org/v1/gonum/blas"
 | 
			
		||||
// Dormr2 multiplies a general matrix C by an orthogonal matrix from a RQ factorization
 | 
			
		||||
// determined by Dgerqf.
 | 
			
		||||
//  C = Q * C   if side == blas.Left and trans == blas.NoTrans
 | 
			
		||||
//  C = Q^T * C  if side == blas.Left and trans == blas.Trans
 | 
			
		||||
//  C = Qᵀ * C  if side == blas.Left and trans == blas.Trans
 | 
			
		||||
//  C = C * Q   if side == blas.Right and trans == blas.NoTrans
 | 
			
		||||
//  C = C * Q^T  if side == blas.Right and trans == blas.Trans
 | 
			
		||||
//  C = C * Qᵀ  if side == blas.Right and trans == blas.Trans
 | 
			
		||||
// If side == blas.Left, a is a matrix of size k×m, and if side == blas.Right
 | 
			
		||||
// a is of size k×n.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										108
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dpbcon.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dpbcon.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,108 @@
 | 
			
		||||
// Copyright ©2019 The Gonum Authors. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
package gonum
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"math"
 | 
			
		||||
 | 
			
		||||
	"gonum.org/v1/gonum/blas"
 | 
			
		||||
	"gonum.org/v1/gonum/blas/blas64"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Dpbcon returns an estimate of the reciprocal of the condition number (in the
 | 
			
		||||
// 1-norm) of an n×n symmetric positive definite band matrix using the Cholesky
 | 
			
		||||
// factorization
 | 
			
		||||
//  A = Uᵀ*U  if uplo == blas.Upper
 | 
			
		||||
//  A = L*Lᵀ  if uplo == blas.Lower
 | 
			
		||||
// computed by Dpbtrf. The estimate is obtained for norm(inv(A)), and the
 | 
			
		||||
// reciprocal of the condition number is computed as
 | 
			
		||||
//  rcond = 1 / (anorm * norm(inv(A))).
 | 
			
		||||
//
 | 
			
		||||
// The length of work must be at least 3*n and the length of iwork must be at
 | 
			
		||||
// least n.
 | 
			
		||||
func (impl Implementation) Dpbcon(uplo blas.Uplo, n, kd int, ab []float64, ldab int, anorm float64, work []float64, iwork []int) (rcond float64) {
 | 
			
		||||
	switch {
 | 
			
		||||
	case uplo != blas.Upper && uplo != blas.Lower:
 | 
			
		||||
		panic(badUplo)
 | 
			
		||||
	case n < 0:
 | 
			
		||||
		panic(nLT0)
 | 
			
		||||
	case kd < 0:
 | 
			
		||||
		panic(kdLT0)
 | 
			
		||||
	case ldab < kd+1:
 | 
			
		||||
		panic(badLdA)
 | 
			
		||||
	case anorm < 0:
 | 
			
		||||
		panic(badNorm)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Quick return if possible.
 | 
			
		||||
	if n == 0 {
 | 
			
		||||
		return 1
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch {
 | 
			
		||||
	case len(ab) < (n-1)*ldab+kd+1:
 | 
			
		||||
		panic(shortAB)
 | 
			
		||||
	case len(work) < 3*n:
 | 
			
		||||
		panic(shortWork)
 | 
			
		||||
	case len(iwork) < n:
 | 
			
		||||
		panic(shortIWork)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Quick return if possible.
 | 
			
		||||
	if anorm == 0 {
 | 
			
		||||
		return 0
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	const smlnum = dlamchS
 | 
			
		||||
 | 
			
		||||
	var (
 | 
			
		||||
		ainvnm float64
 | 
			
		||||
		kase   int
 | 
			
		||||
		isave  [3]int
 | 
			
		||||
		normin bool
 | 
			
		||||
 | 
			
		||||
		// Denote work slices.
 | 
			
		||||
		x     = work[:n]
 | 
			
		||||
		v     = work[n : 2*n]
 | 
			
		||||
		cnorm = work[2*n : 3*n]
 | 
			
		||||
	)
 | 
			
		||||
	// Estimate the 1-norm of the inverse.
 | 
			
		||||
	bi := blas64.Implementation()
 | 
			
		||||
	for {
 | 
			
		||||
		ainvnm, kase = impl.Dlacn2(n, v, x, iwork, ainvnm, kase, &isave)
 | 
			
		||||
		if kase == 0 {
 | 
			
		||||
			break
 | 
			
		||||
		}
 | 
			
		||||
		var op1, op2 blas.Transpose
 | 
			
		||||
		if uplo == blas.Upper {
 | 
			
		||||
			// Multiply x by inv(Uᵀ),
 | 
			
		||||
			op1 = blas.Trans
 | 
			
		||||
			// then by inv(Uᵀ).
 | 
			
		||||
			op2 = blas.NoTrans
 | 
			
		||||
		} else {
 | 
			
		||||
			// Multiply x by inv(L),
 | 
			
		||||
			op1 = blas.NoTrans
 | 
			
		||||
			// then by inv(Lᵀ).
 | 
			
		||||
			op2 = blas.Trans
 | 
			
		||||
		}
 | 
			
		||||
		scaleL := impl.Dlatbs(uplo, op1, blas.NonUnit, normin, n, kd, ab, ldab, x, cnorm)
 | 
			
		||||
		normin = true
 | 
			
		||||
		scaleU := impl.Dlatbs(uplo, op2, blas.NonUnit, normin, n, kd, ab, ldab, x, cnorm)
 | 
			
		||||
		// Multiply x by 1/scale if doing so will not cause overflow.
 | 
			
		||||
		scale := scaleL * scaleU
 | 
			
		||||
		if scale != 1 {
 | 
			
		||||
			ix := bi.Idamax(n, x, 1)
 | 
			
		||||
			if scale < math.Abs(x[ix])*smlnum || scale == 0 {
 | 
			
		||||
				return 0
 | 
			
		||||
			}
 | 
			
		||||
			impl.Drscl(n, scale, x, 1)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if ainvnm == 0 {
 | 
			
		||||
		return 0
 | 
			
		||||
	}
 | 
			
		||||
	// Return the estimate of the reciprocal condition number.
 | 
			
		||||
	return (1 / ainvnm) / anorm
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										26
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dpbtf2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dpbtf2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -14,8 +14,8 @@ import (
 | 
			
		||||
// Dpbtf2 computes the Cholesky factorization of a symmetric positive banded
 | 
			
		||||
// matrix ab. The matrix ab is n×n with kd diagonal bands. The Cholesky
 | 
			
		||||
// factorization computed is
 | 
			
		||||
//  A = U^T * U if ul == blas.Upper
 | 
			
		||||
//  A = L * L^T if ul == blas.Lower
 | 
			
		||||
//  A = Uᵀ * U  if ul == blas.Upper
 | 
			
		||||
//  A = L * Lᵀ  if ul == blas.Lower
 | 
			
		||||
// ul also specifies the storage of ab. If ul == blas.Upper, then
 | 
			
		||||
// ab is stored as an upper-triangular banded matrix with kd super-diagonals,
 | 
			
		||||
// and if ul == blas.Lower, ab is stored as a lower-triangular banded matrix
 | 
			
		||||
@@ -47,9 +47,9 @@ import (
 | 
			
		||||
// version.
 | 
			
		||||
//
 | 
			
		||||
// Dpbtf2 is an internal routine, exported for testing purposes.
 | 
			
		||||
func (Implementation) Dpbtf2(ul blas.Uplo, n, kd int, ab []float64, ldab int) (ok bool) {
 | 
			
		||||
func (Implementation) Dpbtf2(uplo blas.Uplo, n, kd int, ab []float64, ldab int) (ok bool) {
 | 
			
		||||
	switch {
 | 
			
		||||
	case ul != blas.Upper && ul != blas.Lower:
 | 
			
		||||
	case uplo != blas.Upper && uplo != blas.Lower:
 | 
			
		||||
		panic(badUplo)
 | 
			
		||||
	case n < 0:
 | 
			
		||||
		panic(nLT0)
 | 
			
		||||
@@ -59,27 +59,29 @@ func (Implementation) Dpbtf2(ul blas.Uplo, n, kd int, ab []float64, ldab int) (o
 | 
			
		||||
		panic(badLdA)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Quick return if possible.
 | 
			
		||||
	if n == 0 {
 | 
			
		||||
		return
 | 
			
		||||
		return true
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if len(ab) < (n-1)*ldab+kd {
 | 
			
		||||
	if len(ab) < (n-1)*ldab+kd+1 {
 | 
			
		||||
		panic(shortAB)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	bi := blas64.Implementation()
 | 
			
		||||
 | 
			
		||||
	kld := max(1, ldab-1)
 | 
			
		||||
	if ul == blas.Upper {
 | 
			
		||||
	if uplo == blas.Upper {
 | 
			
		||||
		// Compute the Cholesky factorization A = Uᵀ * U.
 | 
			
		||||
		for j := 0; j < n; j++ {
 | 
			
		||||
			// Compute U(J,J) and test for non positive-definiteness.
 | 
			
		||||
			// Compute U(j,j) and test for non-positive-definiteness.
 | 
			
		||||
			ajj := ab[j*ldab]
 | 
			
		||||
			if ajj <= 0 {
 | 
			
		||||
				return false
 | 
			
		||||
			}
 | 
			
		||||
			ajj = math.Sqrt(ajj)
 | 
			
		||||
			ab[j*ldab] = ajj
 | 
			
		||||
			// Compute elements j+1:j+kn of row J and update the trailing submatrix
 | 
			
		||||
			// Compute elements j+1:j+kn of row j and update the trailing submatrix
 | 
			
		||||
			// within the band.
 | 
			
		||||
			kn := min(kd, n-j-1)
 | 
			
		||||
			if kn > 0 {
 | 
			
		||||
@@ -89,16 +91,16 @@ func (Implementation) Dpbtf2(ul blas.Uplo, n, kd int, ab []float64, ldab int) (o
 | 
			
		||||
		}
 | 
			
		||||
		return true
 | 
			
		||||
	}
 | 
			
		||||
	// Compute the Cholesky factorization A = L * Lᵀ.
 | 
			
		||||
	for j := 0; j < n; j++ {
 | 
			
		||||
		// Compute L(J,J) and test for non positive-definiteness.
 | 
			
		||||
		// Compute L(j,j) and test for non-positive-definiteness.
 | 
			
		||||
		ajj := ab[j*ldab+kd]
 | 
			
		||||
		if ajj <= 0 {
 | 
			
		||||
			return false
 | 
			
		||||
		}
 | 
			
		||||
		ajj = math.Sqrt(ajj)
 | 
			
		||||
		ab[j*ldab+kd] = ajj
 | 
			
		||||
 | 
			
		||||
		// Compute elements J+1:J+KN of column J and update the trailing submatrix
 | 
			
		||||
		// Compute elements j+1:j+kn of column j and update the trailing submatrix
 | 
			
		||||
		// within the band.
 | 
			
		||||
		kn := min(kd, n-j-1)
 | 
			
		||||
		if kn > 0 {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										214
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dpbtrf.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										214
									
								
								vendor/gonum.org/v1/gonum/lapack/gonum/dpbtrf.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,214 @@
 | 
			
		||||
// Copyright ©2019 The Gonum Authors. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
package gonum
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"gonum.org/v1/gonum/blas"
 | 
			
		||||
	"gonum.org/v1/gonum/blas/blas64"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Dpbtrf computes the Cholesky factorization of an n×n symmetric positive
 | 
			
		||||
// definite band matrix
 | 
			
		||||
//  A = Uᵀ * U  if uplo == blas.Upper
 | 
			
		||||
//  A = L * Lᵀ  if uplo == blas.Lower
 | 
			
		||||
// where U is an upper triangular band matrix and L is lower triangular. kd is
 | 
			
		||||
// the number of super- or sub-diagonals of A.
 | 
			
		||||
//
 | 
			
		||||
// The band storage scheme is illustrated below when n = 6 and kd = 2. Elements
 | 
			
		||||
// marked * are not used by the function.
 | 
			
		||||
//
 | 
			
		||||
//  uplo == blas.Upper
 | 
			
		||||
//  On entry:         On return:
 | 
			
		||||
//   a00  a01  a02     u00  u01  u02
 | 
			
		||||
//   a11  a12  a13     u11  u12  u13
 | 
			
		||||
//   a22  a23  a24     u22  u23  u24
 | 
			
		||||
//   a33  a34  a35     u33  u34  u35
 | 
			
		||||
//   a44  a45   *      u44  u45   *
 | 
			
		||||
//   a55   *    *      u55   *    *
 | 
			
		||||
//
 | 
			
		||||
//  uplo == blas.Lower
 | 
			
		||||
//  On entry:         On return:
 | 
			
		||||
//    *    *   a00       *    *   l00
 | 
			
		||||
//    *   a10  a11       *   l10  l11
 | 
			
		||||
//   a20  a21  a22      l20  l21  l22
 | 
			
		||||
//   a31  a32  a33      l31  l32  l33
 | 
			
		||||
//   a42  a43  a44      l42  l43  l44
 | 
			
		||||
//   a53  a54  a55      l53  l54  l55
 | 
			
		||||
func (impl Implementation) Dpbtrf(uplo blas.Uplo, n, kd int, ab []float64, ldab int) (ok bool) {
 | 
			
		||||
	const nbmax = 32
 | 
			
		||||
 | 
			
		||||
	switch {
 | 
			
		||||
	case uplo != blas.Upper && uplo != blas.Lower:
 | 
			
		||||
		panic(badUplo)
 | 
			
		||||
	case n < 0:
 | 
			
		||||
		panic(nLT0)
 | 
			
		||||
	case kd < 0:
 | 
			
		||||
		panic(kdLT0)
 | 
			
		||||
	case ldab < kd+1:
 | 
			
		||||
		panic(badLdA)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Quick return if possible.
 | 
			
		||||
	if n == 0 {
 | 
			
		||||
		return true
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if len(ab) < (n-1)*ldab+kd+1 {
 | 
			
		||||
		panic(shortAB)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	opts := string(blas.Upper)
 | 
			
		||||
	if uplo == blas.Lower {
 | 
			
		||||
		opts = string(blas.Lower)
 | 
			
		||||
	}
 | 
			
		||||
	nb := impl.Ilaenv(1, "DPBTRF", opts, n, kd, -1, -1)
 | 
			
		||||
	// The block size must not exceed the semi-bandwidth kd, and must not
 | 
			
		||||
	// exceed the limit set by the size of the local array work.
 | 
			
		||||
	nb = min(nb, nbmax)
 | 
			
		||||
 | 
			
		||||
	if nb <= 1 || kd < nb {
 | 
			
		||||
		// Use unblocked code.
 | 
			
		||||
		return impl.Dpbtf2(uplo, n, kd, ab, ldab)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Use blocked code.
 | 
			
		||||
	ldwork := nb
 | 
			
		||||
	work := make([]float64, nb*ldwork)
 | 
			
		||||
	bi := blas64.Implementation()
 | 
			
		||||
	if uplo == blas.Upper {
 | 
			
		||||
		// Compute the Cholesky factorization of a symmetric band
 | 
			
		||||
		// matrix, given the upper triangle of the matrix in band
 | 
			
		||||
		// storage.
 | 
			
		||||
 | 
			
		||||
		// Process the band matrix one diagonal block at a time.
 | 
			
		||||
		for i := 0; i < n; i += nb {
 | 
			
		||||
			ib := min(nb, n-i)
 | 
			
		||||
			// Factorize the diagonal block.
 | 
			
		||||
			ok := impl.Dpotf2(uplo, ib, ab[i*ldab:], ldab-1)
 | 
			
		||||
			if !ok {
 | 
			
		||||
				return false
 | 
			
		||||
			}
 | 
			
		||||
			if i+ib >= n {
 | 
			
		||||
				continue
 | 
			
		||||
			}
 | 
			
		||||
			// Update the relevant part of the trailing submatrix.
 | 
			
		||||
			// If A11 denotes the diagonal block which has just been
 | 
			
		||||
			// factorized, then we need to update the remaining
 | 
			
		||||
			// blocks in the diagram:
 | 
			
		||||
			//
 | 
			
		||||
			//  A11   A12   A13
 | 
			
		||||
			//        A22   A23
 | 
			
		||||
			//              A33
 | 
			
		||||
			//
 | 
			
		||||
			// The numbers of rows and columns in the partitioning
 | 
			
		||||
			// are ib, i2, i3 respectively. The blocks A12, A22 and
 | 
			
		||||
			// A23 are empty if ib = kd. The upper triangle of A13
 | 
			
		||||
			// lies outside the band.
 | 
			
		||||
			i2 := min(kd-ib, n-i-ib)
 | 
			
		||||
			if i2 > 0 {
 | 
			
		||||
				// Update A12.
 | 
			
		||||
				bi.Dtrsm(blas.Left, blas.Upper, blas.Trans, blas.NonUnit, ib, i2,
 | 
			
		||||
					1, ab[i*ldab:], ldab-1, ab[i*ldab+ib:], ldab-1)
 | 
			
		||||
				// Update A22.
 | 
			
		||||
				bi.Dsyrk(blas.Upper, blas.Trans, i2, ib,
 | 
			
		||||
					-1, ab[i*ldab+ib:], ldab-1, 1, ab[(i+ib)*ldab:], ldab-1)
 | 
			
		||||
			}
 | 
			
		||||
			i3 := min(ib, n-i-kd)
 | 
			
		||||
			if i3 > 0 {
 | 
			
		||||
				// Copy the lower triangle of A13 into the work array.
 | 
			
		||||
				for ii := 0; ii < ib; ii++ {
 | 
			
		||||
					for jj := 0; jj <= min(ii, i3-1); jj++ {
 | 
			
		||||
						work[ii*ldwork+jj] = ab[(i+ii)*ldab+kd-ii+jj]
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				// Update A13 (in the work array).
 | 
			
		||||
				bi.Dtrsm(blas.Left, blas.Upper, blas.Trans, blas.NonUnit, ib, i3,
 | 
			
		||||
					1, ab[i*ldab:], ldab-1, work, ldwork)
 | 
			
		||||
				// Update A23.
 | 
			
		||||
				if i2 > 0 {
 | 
			
		||||
					bi.Dgemm(blas.Trans, blas.NoTrans, i2, i3, ib,
 | 
			
		||||
						-1, ab[i*ldab+ib:], ldab-1, work, ldwork,
 | 
			
		||||
						1, ab[(i+ib)*ldab+kd-ib:], ldab-1)
 | 
			
		||||
				}
 | 
			
		||||
				// Update A33.
 | 
			
		||||
				bi.Dsyrk(blas.Upper, blas.Trans, i3, ib,
 | 
			
		||||
					-1, work, ldwork, 1, ab[(i+kd)*ldab:], ldab-1)
 | 
			
		||||
				// Copy the lower triangle of A13 back into place.
 | 
			
		||||
				for ii := 0; ii < ib; ii++ {
 | 
			
		||||
					for jj := 0; jj <= min(ii, i3-1); jj++ {
 | 
			
		||||
						ab[(i+ii)*ldab+kd-ii+jj] = work[ii*ldwork+jj]
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		// Compute the Cholesky factorization of a symmetric band
 | 
			
		||||
		// matrix, given the lower triangle of the matrix in band
 | 
			
		||||
		// storage.
 | 
			
		||||
 | 
			
		||||
		// Process the band matrix one diagonal block at a time.
 | 
			
		||||
		for i := 0; i < n; i += nb {
 | 
			
		||||
			ib := min(nb, n-i)
 | 
			
		||||
			// Factorize the diagonal block.
 | 
			
		||||
			ok := impl.Dpotf2(uplo, ib, ab[i*ldab+kd:], ldab-1)
 | 
			
		||||
			if !ok {
 | 
			
		||||
				return false
 | 
			
		||||
			}
 | 
			
		||||
			if i+ib >= n {
 | 
			
		||||
				continue
 | 
			
		||||
			}
 | 
			
		||||
			// Update the relevant part of the trailing submatrix.
 | 
			
		||||
			// If A11 denotes the diagonal block which has just been
 | 
			
		||||
			// factorized, then we need to update the remaining
 | 
			
		||||
			// blocks in the diagram:
 | 
			
		||||
			//
 | 
			
		||||
			//  A11
 | 
			
		||||
			//  A21   A22
 | 
			
		||||
			//  A31   A32   A33
 | 
			
		||||
			//
 | 
			
		||||
			// The numbers of rows and columns in the partitioning
 | 
			
		||||
			// are ib, i2, i3 respectively. The blocks A21, A22 and
 | 
			
		||||
			// A32 are empty if ib = kd. The lowr triangle of A31
 | 
			
		||||
			// lies outside the band.
 | 
			
		||||
			i2 := min(kd-ib, n-i-ib)
 | 
			
		||||
			if i2 > 0 {
 | 
			
		||||
				// Update A21.
 | 
			
		||||
				bi.Dtrsm(blas.Right, blas.Lower, blas.Trans, blas.NonUnit, i2, ib,
 | 
			
		||||
					1, ab[i*ldab+kd:], ldab-1, ab[(i+ib)*ldab+kd-ib:], ldab-1)
 | 
			
		||||
				// Update A22.
 | 
			
		||||
				bi.Dsyrk(blas.Lower, blas.NoTrans, i2, ib,
 | 
			
		||||
					-1, ab[(i+ib)*ldab+kd-ib:], ldab-1, 1, ab[(i+ib)*ldab+kd:], ldab-1)
 | 
			
		||||
			}
 | 
			
		||||
			i3 := min(ib, n-i-kd)
 | 
			
		||||
			if i3 > 0 {
 | 
			
		||||
				// Copy the upper triangle of A31 into the work array.
 | 
			
		||||
				for ii := 0; ii < i3; ii++ {
 | 
			
		||||
					for jj := ii; jj < ib; jj++ {
 | 
			
		||||
						work[ii*ldwork+jj] = ab[(ii+i+kd)*ldab+jj-ii]
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				// Update A31 (in the work array).
 | 
			
		||||
				bi.Dtrsm(blas.Right, blas.Lower, blas.Trans, blas.NonUnit, i3, ib,
 | 
			
		||||
					1, ab[i*ldab+kd:], ldab-1, work, ldwork)
 | 
			
		||||
				// Update A32.
 | 
			
		||||
				if i2 > 0 {
 | 
			
		||||
					bi.Dgemm(blas.NoTrans, blas.Trans, i3, i2, ib,
 | 
			
		||||
						-1, work, ldwork, ab[(i+ib)*ldab+kd-ib:], ldab-1,
 | 
			
		||||
						1, ab[(i+kd)*ldab+ib:], ldab-1)
 | 
			
		||||
				}
 | 
			
		||||
				// Update A33.
 | 
			
		||||
				bi.Dsyrk(blas.Lower, blas.NoTrans, i3, ib,
 | 
			
		||||
					-1, work, ldwork, 1, ab[(i+kd)*ldab+kd:], ldab-1)
 | 
			
		||||
				// Copy the upper triangle of A31 back into place.
 | 
			
		||||
				for ii := 0; ii < i3; ii++ {
 | 
			
		||||
					for jj := ii; jj < ib; jj++ {
 | 
			
		||||
						ab[(ii+i+kd)*ldab+jj-ii] = work[ii*ldwork+jj]
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return true
 | 
			
		||||
}
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user