translate into notation of other encoding @param standardEncodings (older encoding that we are adapted from, without any vector->vector translations) @return
(final VariableEncodings standardEncodings, final double[] x)
| 270 | * @return |
| 271 | */ |
| 272 | public double[] translateTo(final VariableEncodings standardEncodings, final double[] x) { |
| 273 | final double[] ret = new double[standardEncodings.dim()*standardEncodings.noutcomes()]; |
| 274 | // get quick map of newer encodings |
| 275 | final Map<String,VariableMapping> newAdaptions = new HashMap<String,VariableMapping>(); |
| 276 | for(final VariableMapping newAdaption: newAdapter.adaptions) { |
| 277 | newAdaptions.put(newAdaption.origColumn(),newAdaption); |
| 278 | } |
| 279 | for(final VariableMapping orig: standardEncodings.adaptions) { |
| 280 | final VariableMapping newa = newAdaptions.get(orig.origColumn()); |
| 281 | if(null!=newa) { |
| 282 | for(final Map.Entry<String,Integer> mc: standardEncodings.outcomeCategories.entrySet()) { |
| 283 | //final String outcome = mc.getKey(); |
| 284 | final int cati = mc.getValue(); |
| 285 | final int baseStandard = cati*standardEncodings.vdim; |
| 286 | final int baseNew = cati*newAdapter.vdim; |
| 287 | if((newa instanceof LevelVectors)&&(orig instanceof LevelIndicators)) { |
| 288 | // vector adaption, assume original is level adaption |
| 289 | final LevelVectors levv = (LevelVectors)newa; |
| 290 | final LevelIndicators levi = (LevelIndicators)orig; |
| 291 | for(final String level: levi.levels()) { |
| 292 | final double effect = levv.effect(baseNew,x,level); |
| 293 | final int index = levi.index(level); |
| 294 | ret[baseStandard + index] = effect; |
| 295 | } |
| 296 | } if((orig.indexR()-orig.indexL())==(newa.indexR()-newa.indexL())) { |
| 297 | // standard match, assume same type and width |
| 298 | for(int i=orig.indexL();i<orig.indexR();++i) { |
| 299 | ret[baseStandard+i] = x[baseNew+newa.indexL()+i-orig.indexL()]; |
| 300 | } |
| 301 | } |
| 302 | } |
| 303 | } |
| 304 | } |
| 305 | return ret; |
| 306 | } |
| 307 | } |