@@ -46,8 +46,7 @@ import io.github.mandar2812.dynaml.probability.{MatrixNormalRV, MultGaussianPRV}
4646 * */
4747abstract class GaussianProcessPrior [I : ClassTag , MeanFuncParams ](
4848 val covariance : LocalScalarKernel [I ],
49- val noiseCovariance : LocalScalarKernel [I ],
50- val trendParamsEncoder : Encoder [MeanFuncParams , Map [String , Double ]]) extends
49+ val noiseCovariance : LocalScalarKernel [I ]) extends
5150 StochasticProcessPrior [
5251 I , Double , PartitionedVector ,
5352 MultGaussianPRV , MultGaussianPRV ,
@@ -61,6 +60,8 @@ abstract class GaussianProcessPrior[I: ClassTag, MeanFuncParams](
6160
6261 def meanFuncParams_ (p : MeanFuncParams ): Unit
6362
63+ val trendParamsEncoder : Encoder [MeanFuncParams , Map [String , Double ]]
64+
6465 protected val initial_covariance_state : Map [String , Double ] = covariance.state ++ noiseCovariance.state
6566
6667 val meanFunctionPipe : MetaPipe [MeanFuncParams , I , Double ]
@@ -153,9 +154,9 @@ object GaussianProcessPrior {
153154 covariance : LocalScalarKernel [I ],
154155 noiseCovariance : LocalScalarKernel [I ],
155156 meanFPipe : MetaPipe [MeanFuncParams , I , Double ],
156- trendParamsEncoder : Encoder [MeanFuncParams , Map [String , Double ]],
157+ trendEncoder : Encoder [MeanFuncParams , Map [String , Double ]],
157158 initialParams : MeanFuncParams ): GaussianProcessPrior [I , MeanFuncParams ] =
158- new GaussianProcessPrior [I , MeanFuncParams ](covariance, noiseCovariance, trendParamsEncoder ) {
159+ new GaussianProcessPrior [I , MeanFuncParams ](covariance, noiseCovariance) {
159160
160161 private var params = initialParams
161162
@@ -164,6 +165,8 @@ object GaussianProcessPrior {
164165 override def meanFuncParams_ (p : MeanFuncParams ) = params = p
165166
166167 override val meanFunctionPipe = meanFPipe
168+
169+ override val trendParamsEncoder = trendEncoder
167170 }
168171
169172}
@@ -176,10 +179,10 @@ object GaussianProcessPrior {
176179 * */
177180class LinearTrendGaussianPrior [I : ClassTag ](
178181 cov : LocalScalarKernel [I ], n : LocalScalarKernel [I ],
179- trendParamsEncoder : Encoder [(I , Double ), Map [String , Double ]],
182+ override val trendParamsEncoder : Encoder [(I , Double ), Map [String , Double ]],
180183 trendParams : I , intercept : Double )(
181184 implicit inner : InnerProductSpace [I , Double ]) extends
182- GaussianProcessPrior [I , (I , Double )](cov, n, trendParamsEncoder ) with
185+ GaussianProcessPrior [I , (I , Double )](cov, n) with
183186 LinearTrendStochasticPrior [I , MultGaussianPRV , MultGaussianPRV , AbstractGPRegressionModel [Seq [(I , Double )], I ]]{
184187
185188 override val innerProduct = inner
@@ -193,6 +196,7 @@ class LinearTrendGaussianPrior[I: ClassTag](
193196 override val meanFunctionPipe = MetaPipe (
194197 (parameters : (I , Double )) => (x : I ) => inner.dot(parameters._1, x) + parameters._2
195198 )
199+
196200}
197201
198202/**
@@ -215,11 +219,10 @@ class LinearTrendGaussianPrior[I: ClassTag](
215219abstract class CoRegGPPrior [I : ClassTag , J : ClassTag , MeanFuncParams ](
216220 covarianceI : LocalScalarKernel [I ], covarianceJ : LocalScalarKernel [J ],
217221 noiseCovarianceI : LocalScalarKernel [I ], noiseCovarianceJ : LocalScalarKernel [J ],
218- trendParamsEncoder : Encoder [MeanFuncParams , Map [String , Double ]]) extends
222+ override val trendParamsEncoder : Encoder [MeanFuncParams , Map [String , Double ]]) extends
219223 GaussianProcessPrior [(I ,J ), MeanFuncParams ](
220224 covarianceI:* covarianceJ,
221- noiseCovarianceI:* noiseCovarianceJ,
222- trendParamsEncoder) {
225+ noiseCovarianceI:* noiseCovarianceJ) {
223226
224227 self =>
225228
0 commit comments