linmod<-function(prior,X,y,unknown=TRUE) {Xt<-t(X) Cd<-Xt%*%X Xty<-Xt%*%y b0<-prior$b betahat<-solve(Cd,Xty) n<-length(y) C0<-solve(prior$V/prior$v) C1<-C0+Cd b1<-solve(C1,(C0%*%b0+Cd%*%betahat)) res<-y-X%*%betahat Sd<-sum(res^2) if (unknown) {d1<-prior$d+n R<-t(b0)%*%C0%*%b0 + t(betahat)%*%Cd%*%betahat - t(b1)%*%C1%*%b1 nvd<-Sd+R v1<-(prior$d*prior$v + nvd)/d1 v1<-v1[1,1] } else {v1<-prior$v d1<-0 } V1<-v1*solve(C1) result<-list(d=d1,v=v1,b=b1,V=V1) result }