| 1 | /* =========================================================== | |
| 2 | * JFreeChart : a free chart library for the Java(tm) platform | |
| 3 | * =========================================================== | |
| 4 | * | |
| 5 | * (C) Copyright 2000-2008, by Object Refinery Limited and Contributors. | |
| 6 | * | |
| 7 | * Project Info: http://www.jfree.org/jfreechart/index.html | |
| 8 | * | |
| 9 | * This library is free software; you can redistribute it and/or modify it | |
| 10 | * under the terms of the GNU Lesser General Public License as published by | |
| 11 | * the Free Software Foundation; either version 2.1 of the License, or | |
| 12 | * (at your option) any later version. | |
| 13 | * | |
| 14 | * This library is distributed in the hope that it will be useful, but | |
| 15 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
| 16 | * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public | |
| 17 | * License for more details. | |
| 18 | * | |
| 19 | * You should have received a copy of the GNU Lesser General Public | |
| 20 | * License along with this library; if not, write to the Free Software | |
| 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | |
| 22 | * USA. | |
| 23 | * | |
| 24 | * [Java is a trademark or registered trademark of Sun Microsystems, Inc. | |
| 25 | * in the United States and other countries.] | |
| 26 | * | |
| 27 | * ------------------ | |
| 28 | * XYTaskDataset.java | |
| 29 | * ------------------ | |
| 30 | * (C) Copyright 2008, by Object Refinery Limited. | |
| 31 | * | |
| 32 | * Original Author: David Gilbert (for Object Refinery Limited); | |
| 33 | * Contributor(s): -; | |
| 34 | * | |
| 35 | * Changes | |
| 36 | * ------- | |
| 37 | * 17-Sep-2008 : Version 1 (DG); | |
| 38 | * | |
| 39 | */ | |
| 40 | ||
| 41 | package org.jfree.data.gantt; | |
| 42 | ||
| 43 | import java.util.Date; | |
| 44 | ||
| 45 | import org.jfree.chart.axis.SymbolAxis; | |
| 46 | import org.jfree.chart.event.DatasetChangeInfo; | |
| 47 | import org.jfree.chart.renderer.xy.XYBarRenderer; | |
| 48 | import org.jfree.data.event.DatasetChangeEvent; | |
| 49 | import org.jfree.data.event.DatasetChangeListener; | |
| 50 | import org.jfree.data.time.TimePeriod; | |
| 51 | import org.jfree.data.xy.AbstractXYDataset; | |
| 52 | import org.jfree.data.xy.IntervalXYDataset; | |
| 53 | ||
| 54 | /** | |
| 55 | * A dataset implementation that wraps a {@link TaskSeriesCollection} and | |
| 56 | * presents it as an {@link IntervalXYDataset}, allowing a set of tasks to | |
| 57 | * be displayed using an {@link XYBarRenderer} (and usually a | |
| 58 | * {@link SymbolAxis}). This is a very specialised dataset implementation | |
| 59 | * ---before using it, you should take some time to understand the use-cases | |
| 60 | * that it is designed for. | |
| 61 | * | |
| 62 | * @since 1.0.11 | |
| 63 | */ | |
| 64 | public class XYTaskDataset extends AbstractXYDataset | |
| 65 | implements IntervalXYDataset, DatasetChangeListener { | |
| 66 | ||
| 67 | /** The underlying tasks. */ | |
| 68 | private TaskSeriesCollection underlying; | |
| 69 | ||
| 70 | /** The series interval width (typically 0.0 < w <= 1.0). */ | |
| 71 | private double seriesWidth; | |
| 72 | ||
| 73 | /** A flag that controls whether or not the data values are transposed. */ | |
| 74 | private boolean transposed; | |
| 75 | ||
| 76 | /** | |
| 77 | * Creates a new dataset based on the supplied collection of tasks. | |
| 78 | * | |
| 79 | * @param tasks the underlying dataset (null not permitted). | |
| 80 | */ | |
| 81 | public XYTaskDataset(TaskSeriesCollection tasks) { | |
| 82 |
1
1. |
if (tasks == null) { |
| 83 | throw new IllegalArgumentException("Null 'tasks' argument."); | |
| 84 | } | |
| 85 | this.underlying = tasks; | |
| 86 | this.seriesWidth = 0.8; | |
| 87 |
1
1. |
this.underlying.addChangeListener(this); |
| 88 | } | |
| 89 | ||
| 90 | /** | |
| 91 | * Returns the underlying task series collection that was supplied to the | |
| 92 | * constructor. | |
| 93 | * | |
| 94 | * @return The underlying collection (never null). | |
| 95 | */ | |
| 96 | public TaskSeriesCollection getTasks() { | |
| 97 |
1
1. getTasks : mutated return of Object value for org/jfree/data/gantt/XYTaskDataset::getTasks to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return this.underlying; |
| 98 | } | |
| 99 | ||
| 100 | /** | |
| 101 | * Returns the width of the interval for each series this dataset. | |
| 102 | * | |
| 103 | * @return The width of the series interval. | |
| 104 | * | |
| 105 | * @see #setSeriesWidth(double) | |
| 106 | */ | |
| 107 | public double getSeriesWidth() { | |
| 108 |
1
1. getSeriesWidth : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getSeriesWidth → NO_COVERAGE |
return this.seriesWidth; |
| 109 | } | |
| 110 | ||
| 111 | /** | |
| 112 | * Sets the series interval width and sends a {@link DatasetChangeEvent} to | |
| 113 | * all registered listeners. | |
| 114 | * | |
| 115 | * @param w the width. | |
| 116 | * | |
| 117 | * @see #getSeriesWidth() | |
| 118 | */ | |
| 119 | public void setSeriesWidth(double w) { | |
| 120 |
2
1. setSeriesWidth : changed conditional boundary → SURVIVED 2. setSeriesWidth : negated conditional → KILLED |
if (w <= 0.0) { |
| 121 | throw new IllegalArgumentException("Requires 'w' > 0.0."); | |
| 122 | } | |
| 123 | this.seriesWidth = w; | |
| 124 |
1
1. setSeriesWidth : removed call to org/jfree/data/gantt/XYTaskDataset::fireDatasetChanged → SURVIVED |
fireDatasetChanged(new DatasetChangeInfo()); |
| 125 | //TODO: fill in real change info | |
| 126 | } | |
| 127 | ||
| 128 | /** | |
| 129 | * Returns a flag that indicates whether or not the dataset is transposed. | |
| 130 | * The default is false which means the x-values are integers | |
| 131 | * corresponding to the series indices, and the y-values are millisecond | |
| 132 | * values corresponding to the task date/time intervals. If the flag | |
| 133 | * is set to true, the x and y-values are reversed. | |
| 134 | * | |
| 135 | * @return The flag. | |
| 136 | * | |
| 137 | * @see #setTransposed(boolean) | |
| 138 | */ | |
| 139 | public boolean isTransposed() { | |
| 140 |
1
1. isTransposed : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return this.transposed; |
| 141 | } | |
| 142 | ||
| 143 | /** | |
| 144 | * Sets the flag that controls whether or not the dataset is transposed | |
| 145 | * and sends a {@link DatasetChangeEvent} to all registered listeners. | |
| 146 | * | |
| 147 | * @param transposed the new flag value. | |
| 148 | * | |
| 149 | * @see #isTransposed() | |
| 150 | */ | |
| 151 | public void setTransposed(boolean transposed) { | |
| 152 | this.transposed = transposed; | |
| 153 |
1
1. setTransposed : removed call to org/jfree/data/gantt/XYTaskDataset::fireDatasetChanged → SURVIVED |
fireDatasetChanged(new DatasetChangeInfo()); |
| 154 | //TODO: fill in real change info | |
| 155 | } | |
| 156 | ||
| 157 | /** | |
| 158 | * Returns the number of series in the dataset. | |
| 159 | * | |
| 160 | * @return The series count. | |
| 161 | */ | |
| 162 | public int getSeriesCount() { | |
| 163 |
1
1. getSeriesCount : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return this.underlying.getSeriesCount(); |
| 164 | } | |
| 165 | ||
| 166 | /** | |
| 167 | * Returns the name of a series. | |
| 168 | * | |
| 169 | * @param series the series index (zero-based). | |
| 170 | * | |
| 171 | * @return The name of a series. | |
| 172 | */ | |
| 173 | public Comparable getSeriesKey(int series) { | |
| 174 |
1
1. getSeriesKey : mutated return of Object value for org/jfree/data/gantt/XYTaskDataset::getSeriesKey to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return this.underlying.getSeriesKey(series); |
| 175 | } | |
| 176 | ||
| 177 | /** | |
| 178 | * Returns the number of items (tasks) in the specified series. | |
| 179 | * | |
| 180 | * @param series the series index (zero-based). | |
| 181 | * | |
| 182 | * @return The item count. | |
| 183 | */ | |
| 184 | public int getItemCount(int series) { | |
| 185 |
1
1. getItemCount : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return this.underlying.getSeries(series).getItemCount(); |
| 186 | } | |
| 187 | ||
| 188 | /** | |
| 189 | * Returns the x-value (as a double primitive) for an item within a series. | |
| 190 | * | |
| 191 | * @param series the series index (zero-based). | |
| 192 | * @param item the item index (zero-based). | |
| 193 | * | |
| 194 | * @return The value. | |
| 195 | */ | |
| 196 | public double getXValue(int series, int item) { | |
| 197 |
1
1. getXValue : negated conditional → NO_COVERAGE |
if (!this.transposed) { |
| 198 |
1
1. getXValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getXValue → NO_COVERAGE |
return getSeriesValue(series); |
| 199 | } | |
| 200 | else { | |
| 201 |
1
1. getXValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getXValue → NO_COVERAGE |
return getItemValue(series, item); |
| 202 | } | |
| 203 | } | |
| 204 | ||
| 205 | /** | |
| 206 | * Returns the starting date/time for the specified item (task) in the | |
| 207 | * given series, measured in milliseconds since 1-Jan-1970 (as in | |
| 208 | * java.util.Date). | |
| 209 | * | |
| 210 | * @param series the series index. | |
| 211 | * @param item the item (or task) index. | |
| 212 | * | |
| 213 | * @return The start date/time. | |
| 214 | */ | |
| 215 | public double getStartXValue(int series, int item) { | |
| 216 |
1
1. getStartXValue : negated conditional → NO_COVERAGE |
if (!this.transposed) { |
| 217 |
1
1. getStartXValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getStartXValue → NO_COVERAGE |
return getSeriesStartValue(series); |
| 218 | } | |
| 219 | else { | |
| 220 |
1
1. getStartXValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getStartXValue → NO_COVERAGE |
return getItemStartValue(series, item); |
| 221 | } | |
| 222 | } | |
| 223 | ||
| 224 | /** | |
| 225 | * Returns the ending date/time for the specified item (task) in the | |
| 226 | * given series, measured in milliseconds since 1-Jan-1970 (as in | |
| 227 | * java.util.Date). | |
| 228 | * | |
| 229 | * @param series the series index. | |
| 230 | * @param item the item (or task) index. | |
| 231 | * | |
| 232 | * @return The end date/time. | |
| 233 | */ | |
| 234 | public double getEndXValue(int series, int item) { | |
| 235 |
1
1. getEndXValue : negated conditional → NO_COVERAGE |
if (!this.transposed) { |
| 236 |
1
1. getEndXValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getEndXValue → NO_COVERAGE |
return getSeriesEndValue(series); |
| 237 | } | |
| 238 | else { | |
| 239 |
1
1. getEndXValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getEndXValue → NO_COVERAGE |
return getItemEndValue(series, item); |
| 240 | } | |
| 241 | } | |
| 242 | ||
| 243 | /** | |
| 244 | * Returns the x-value for the specified series. | |
| 245 | * | |
| 246 | * @param series the series index. | |
| 247 | * @param item the item index. | |
| 248 | * | |
| 249 | * @return The x-value (in milliseconds). | |
| 250 | */ | |
| 251 | public Number getX(int series, int item) { | |
| 252 |
1
1. getX : mutated return of Object value for org/jfree/data/gantt/XYTaskDataset::getX to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return new Double(getXValue(series, item)); |
| 253 | } | |
| 254 | ||
| 255 | /** | |
| 256 | * Returns the starting date/time for the specified item (task) in the | |
| 257 | * given series, measured in milliseconds since 1-Jan-1970 (as in | |
| 258 | * java.util.Date). | |
| 259 | * | |
| 260 | * @param series the series index. | |
| 261 | * @param item the item (or task) index. | |
| 262 | * | |
| 263 | * @return The start date/time. | |
| 264 | */ | |
| 265 | public Number getStartX(int series, int item) { | |
| 266 |
1
1. getStartX : mutated return of Object value for org/jfree/data/gantt/XYTaskDataset::getStartX to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return new Double(getStartXValue(series, item)); |
| 267 | } | |
| 268 | ||
| 269 | /** | |
| 270 | * Returns the ending date/time for the specified item (task) in the | |
| 271 | * given series, measured in milliseconds since 1-Jan-1970 (as in | |
| 272 | * java.util.Date). | |
| 273 | * | |
| 274 | * @param series the series index. | |
| 275 | * @param item the item (or task) index. | |
| 276 | * | |
| 277 | * @return The end date/time. | |
| 278 | */ | |
| 279 | public Number getEndX(int series, int item) { | |
| 280 |
1
1. getEndX : mutated return of Object value for org/jfree/data/gantt/XYTaskDataset::getEndX to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return new Double(getEndXValue(series, item)); |
| 281 | } | |
| 282 | ||
| 283 | /** | |
| 284 | * Returns the y-value (as a double primitive) for an item within a series. | |
| 285 | * | |
| 286 | * @param series the series index (zero-based). | |
| 287 | * @param item the item index (zero-based). | |
| 288 | * | |
| 289 | * @return The value. | |
| 290 | */ | |
| 291 | public double getYValue(int series, int item) { | |
| 292 |
1
1. getYValue : negated conditional → NO_COVERAGE |
if (!this.transposed) { |
| 293 |
1
1. getYValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getYValue → NO_COVERAGE |
return getItemValue(series, item); |
| 294 | } | |
| 295 | else { | |
| 296 |
1
1. getYValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getYValue → NO_COVERAGE |
return getSeriesValue(series); |
| 297 | } | |
| 298 | } | |
| 299 | ||
| 300 | /** | |
| 301 | * Returns the starting value of the y-interval for an item in the | |
| 302 | * given series. | |
| 303 | * | |
| 304 | * @param series the series index. | |
| 305 | * @param item the item (or task) index. | |
| 306 | * | |
| 307 | * @return The y-interval start. | |
| 308 | */ | |
| 309 | public double getStartYValue(int series, int item) { | |
| 310 |
1
1. getStartYValue : negated conditional → NO_COVERAGE |
if (!this.transposed) { |
| 311 |
1
1. getStartYValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getStartYValue → NO_COVERAGE |
return getItemStartValue(series, item); |
| 312 | } | |
| 313 | else { | |
| 314 |
1
1. getStartYValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getStartYValue → NO_COVERAGE |
return getSeriesStartValue(series); |
| 315 | } | |
| 316 | } | |
| 317 | ||
| 318 | /** | |
| 319 | * Returns the ending value of the y-interval for an item in the | |
| 320 | * given series. | |
| 321 | * | |
| 322 | * @param series the series index. | |
| 323 | * @param item the item (or task) index. | |
| 324 | * | |
| 325 | * @return The y-interval end. | |
| 326 | */ | |
| 327 | public double getEndYValue(int series, int item) { | |
| 328 |
1
1. getEndYValue : negated conditional → NO_COVERAGE |
if (!this.transposed) { |
| 329 |
1
1. getEndYValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getEndYValue → NO_COVERAGE |
return getItemEndValue(series, item); |
| 330 | } | |
| 331 | else { | |
| 332 |
1
1. getEndYValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getEndYValue → NO_COVERAGE |
return getSeriesEndValue(series); |
| 333 | } | |
| 334 | } | |
| 335 | ||
| 336 | /** | |
| 337 | * Returns the y-value for the specified series/item. In this | |
| 338 | * implementation, we return the series index as the y-value (this means | |
| 339 | * that every item in the series has a constant integer value). | |
| 340 | * | |
| 341 | * @param series the series index. | |
| 342 | * @param item the item index. | |
| 343 | * | |
| 344 | * @return The y-value. | |
| 345 | */ | |
| 346 | public Number getY(int series, int item) { | |
| 347 |
1
1. getY : mutated return of Object value for org/jfree/data/gantt/XYTaskDataset::getY to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return new Double(getYValue(series, item)); |
| 348 | } | |
| 349 | ||
| 350 | /** | |
| 351 | * Returns the starting value of the y-interval for an item in the | |
| 352 | * given series. | |
| 353 | * | |
| 354 | * @param series the series index. | |
| 355 | * @param item the item (or task) index. | |
| 356 | * | |
| 357 | * @return The y-interval start. | |
| 358 | */ | |
| 359 | public Number getStartY(int series, int item) { | |
| 360 |
1
1. getStartY : mutated return of Object value for org/jfree/data/gantt/XYTaskDataset::getStartY to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return new Double(getStartYValue(series, item)); |
| 361 | } | |
| 362 | ||
| 363 | /** | |
| 364 | * Returns the ending value of the y-interval for an item in the | |
| 365 | * given series. | |
| 366 | * | |
| 367 | * @param series the series index. | |
| 368 | * @param item the item (or task) index. | |
| 369 | * | |
| 370 | * @return The y-interval end. | |
| 371 | */ | |
| 372 | public Number getEndY(int series, int item) { | |
| 373 |
1
1. getEndY : mutated return of Object value for org/jfree/data/gantt/XYTaskDataset::getEndY to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return new Double(getEndYValue(series, item)); |
| 374 | } | |
| 375 | ||
| 376 | private double getSeriesValue(int series) { | |
| 377 |
1
1. getSeriesValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getSeriesValue → NO_COVERAGE |
return series; |
| 378 | } | |
| 379 | ||
| 380 | private double getSeriesStartValue(int series) { | |
| 381 |
3
1. getSeriesStartValue : Replaced double division with multiplication → NO_COVERAGE 2. getSeriesStartValue : Replaced double subtraction with addition → NO_COVERAGE 3. getSeriesStartValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getSeriesStartValue → NO_COVERAGE |
return series - this.seriesWidth / 2.0; |
| 382 | } | |
| 383 | ||
| 384 | private double getSeriesEndValue(int series) { | |
| 385 |
3
1. getSeriesEndValue : Replaced double division with multiplication → NO_COVERAGE 2. getSeriesEndValue : Replaced double addition with subtraction → NO_COVERAGE 3. getSeriesEndValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getSeriesEndValue → NO_COVERAGE |
return series + this.seriesWidth / 2.0; |
| 386 | } | |
| 387 | ||
| 388 | private double getItemValue(int series, int item) { | |
| 389 | TaskSeries s = this.underlying.getSeries(series); | |
| 390 | Task t = s.get(item); | |
| 391 | TimePeriod duration = t.getDuration(); | |
| 392 | Date start = duration.getStart(); | |
| 393 | Date end = duration.getEnd(); | |
| 394 |
3
1. getItemValue : Replaced long addition with subtraction → NO_COVERAGE 2. getItemValue : Replaced double division with multiplication → NO_COVERAGE 3. getItemValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getItemValue → NO_COVERAGE |
return (start.getTime() + end.getTime()) / 2.0; |
| 395 | } | |
| 396 | ||
| 397 | private double getItemStartValue(int series, int item) { | |
| 398 | TaskSeries s = this.underlying.getSeries(series); | |
| 399 | Task t = s.get(item); | |
| 400 | TimePeriod duration = t.getDuration(); | |
| 401 | Date start = duration.getStart(); | |
| 402 |
1
1. getItemStartValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getItemStartValue → NO_COVERAGE |
return start.getTime(); |
| 403 | } | |
| 404 | ||
| 405 | private double getItemEndValue(int series, int item) { | |
| 406 | TaskSeries s = this.underlying.getSeries(series); | |
| 407 | Task t = s.get(item); | |
| 408 | TimePeriod duration = t.getDuration(); | |
| 409 | Date end = duration.getEnd(); | |
| 410 |
1
1. getItemEndValue : replaced return of double value with -(x + 1) for org/jfree/data/gantt/XYTaskDataset::getItemEndValue → NO_COVERAGE |
return end.getTime(); |
| 411 | } | |
| 412 | ||
| 413 | ||
| 414 | /** | |
| 415 | * Receives a change event from the underlying dataset and responds by | |
| 416 | * firing a change event for this dataset. | |
| 417 | * | |
| 418 | * @param event the event. | |
| 419 | */ | |
| 420 | public void datasetChanged(DatasetChangeEvent event) { | |
| 421 |
1
1. datasetChanged : removed call to org/jfree/data/gantt/XYTaskDataset::fireDatasetChanged → SURVIVED |
fireDatasetChanged(new DatasetChangeInfo()); |
| 422 | //TODO: fill in real change info | |
| 423 | } | |
| 424 | ||
| 425 | /** | |
| 426 | * Tests this dataset for equality with an arbitrary object. | |
| 427 | * | |
| 428 | * @param obj the object (null permitted). | |
| 429 | * | |
| 430 | * @return A boolean. | |
| 431 | */ | |
| 432 | public boolean equals(Object obj) { | |
| 433 |
1
1. equals : negated conditional → KILLED |
if (obj == this) { |
| 434 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return true; |
| 435 | } | |
| 436 |
1
1. equals : negated conditional → KILLED |
if (!(obj instanceof XYTaskDataset)) { |
| 437 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return false; |
| 438 | } | |
| 439 | XYTaskDataset that = (XYTaskDataset) obj; | |
| 440 |
1
1. equals : negated conditional → KILLED |
if (this.seriesWidth != that.seriesWidth) { |
| 441 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 442 | } | |
| 443 |
1
1. equals : negated conditional → KILLED |
if (this.transposed != that.transposed) { |
| 444 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 445 | } | |
| 446 |
1
1. equals : negated conditional → KILLED |
if (!this.underlying.equals(that.underlying)) { |
| 447 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 448 | } | |
| 449 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return true; |
| 450 | } | |
| 451 | ||
| 452 | /** | |
| 453 | * Returns a clone of this dataset. | |
| 454 | * | |
| 455 | * @return A clone of this dataset. | |
| 456 | * | |
| 457 | * @throws CloneNotSupportedException if there is a problem cloning. | |
| 458 | */ | |
| 459 | public Object clone() throws CloneNotSupportedException { | |
| 460 | XYTaskDataset clone = (XYTaskDataset) super.clone(); | |
| 461 | clone.underlying = (TaskSeriesCollection) this.underlying.clone(); | |
| 462 |
1
1. clone : mutated return of Object value for org/jfree/data/gantt/XYTaskDataset::clone to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return clone; |
| 463 | } | |
| 464 | ||
| 465 | } | |
Mutations | ||
| 82 |
1.1 |
|
| 87 |
1.1 |
|
| 97 |
1.1 |
|
| 108 |
1.1 |
|
| 120 |
1.1 2.2 |
|
| 124 |
1.1 |
|
| 140 |
1.1 |
|
| 153 |
1.1 |
|
| 163 |
1.1 |
|
| 174 |
1.1 |
|
| 185 |
1.1 |
|
| 197 |
1.1 |
|
| 198 |
1.1 |
|
| 201 |
1.1 |
|
| 216 |
1.1 |
|
| 217 |
1.1 |
|
| 220 |
1.1 |
|
| 235 |
1.1 |
|
| 236 |
1.1 |
|
| 239 |
1.1 |
|
| 252 |
1.1 |
|
| 266 |
1.1 |
|
| 280 |
1.1 |
|
| 292 |
1.1 |
|
| 293 |
1.1 |
|
| 296 |
1.1 |
|
| 310 |
1.1 |
|
| 311 |
1.1 |
|
| 314 |
1.1 |
|
| 328 |
1.1 |
|
| 329 |
1.1 |
|
| 332 |
1.1 |
|
| 347 |
1.1 |
|
| 360 |
1.1 |
|
| 373 |
1.1 |
|
| 377 |
1.1 |
|
| 381 |
1.1 2.2 3.3 |
|
| 385 |
1.1 2.2 3.3 |
|
| 394 |
1.1 2.2 3.3 |
|
| 402 |
1.1 |
|
| 410 |
1.1 |
|
| 421 |
1.1 |
|
| 433 |
1.1 |
|
| 434 |
1.1 |
|
| 436 |
1.1 |
|
| 437 |
1.1 |
|
| 440 |
1.1 |
|
| 441 |
1.1 |
|
| 443 |
1.1 |
|
| 444 |
1.1 |
|
| 446 |
1.1 |
|
| 447 |
1.1 |
|
| 449 |
1.1 |
|
| 462 |
1.1 |


Lively Kernel Tutorial: (10) Applications and Widgets
In order to demonstrate the capabilities of the Lively Kernel,
we have written or ported a number of applications and widgets to run
on the system.
All these applications and widgets have been written entirely in JavaScript.
Below we show a few examples of applications and widgets.
Try it yourself! Try playing the Asteroids game. Click on the title
bar to bring the window forward, and then click on the background of the
game window to set it to receive keyboard events.
Keyboard controls for the game are as follows:
S: starts the game
P: pauses the game
H: Hyperspace jump
Arrow keys: steer, accelerate and decelerate the ship
Note that all the elements of the clock are full-fledged objects.
For instance, you can manipulate the Roman numerals or the hands
of the clock using the handle operations discussed earlier in this tutorial.


{% extends "base.html" %} {% block content %}
Here's a list of all blog post ordered by date (yyyy/mm/dd)


Sample ancestral trees conditional on phased or unphased SNP genotype data. The actual tree sampling is done using a C++ program that is launched within R. The package also contains functions for specifying the tree-sampling settings (pre-processing) and for storing and manipulating the sampled trees (post-processing). More information about 'sampletrees' can be found at <http://stat.sfu.ca/statgen/research/sampletrees.html>.
| Version: | 1.0.2 |
| Imports: | Rcpp (≥ 0.12.9), haplo.stats, ape |
| LinkingTo: | Rcpp |
| Published: | 2018-01-03 |
| Author: | Kelly Burkett, Brad McNeney, Jinko Graham, Jean-Francois Lefebvre |
| Maintainer: | Kelly Burkett <Rsampletrees at gmail.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | yes |
| CRAN checks: | Rsampletrees results |
| Reference manual: | Rsampletrees.pdf |
| Package source: | Rsampletrees_1.0.2.tar.gz |
| Windows binaries: | r-devel: Rsampletrees_1.0.2.zip, r-release: Rsampletrees_1.0.2.zip, r-oldrel: Rsampletrees_1.0.2.zip |
| OS X binaries: | r-release: Rsampletrees_1.0.2.tgz, r-oldrel: Rsampletrees_1.0.2.tgz |
| Old sources: | Rsampletrees archive |
Please use the canonical form https://CRAN.R-project.org/package=Rsampletrees to link to this page.


--- layout: post title: This will only make things worse... published: true date: 2010-09-01 categories: [] posterous_url: http://blog.hungerandthirstdesign.com/post/1047935800/this-will-only-make-things-worse posterous_slug: post/1047935800/this-will-only-make-things-worse ---
I already entered “:wq” in way too many other editors. This certainly isn’t going to help.
Starting up with vim as my primary editor. Going to take some time to get used to, but I really like it so far. I always wanted to use keyboard only navigation…
Some helps I’ve found along the way are:
Peepcode screencasts (I and II)
Ubuntu fix for Ack
This will probably be a fluid list, so stay tuned!


Fallen Angel:
Humans were actually created by Einhasad's chaos-loving mate, the dissipated Gran Kain. In pledging their allegiance to Einhasad, they have suppressed their natural desire for freedom and independence.
They became pawns in a game beyond their understanding...
I find the whole situation both ludicrous and sad.
I cannot understand why Mother would do such a thing, much less allow it to continue for so long.
Keep listening.


LIBRARY MANAGEMENT SYSTEM
HISTORY
Nabin Jaiswal
B.Tech ECE
Final Year
141114132
Dashboard
Search Database
Set Remainder
History
Review
Log out
20th October 2017
5
books taken
3
books submitted
19th September 2017
4
books taken
3
books submitted


Summary of course
Morten Hjorth-Jensen Email<EMAIL_ADDRESS>[1, 2]
[1] Department of Physics and Center of Mathematics for Applications, University of Oslo
[2] National Superconducting Cyclotron Laboratory, Michigan State University
Nov 29, 2018
What? Me worry? No final exam in this course!
What did I learn in school this year?
Our ideal about knowledge on computational science
Does that match the experiences you have made this semester?
Topics we have covered this year
The course has two central parts
- Statistical analysis and optimization of data
- Machine learning
Statistical analysis and optimization of data
The following topics will be covered
- Basic concepts, expectation values, variance, covariance, correlation functions and errors;
- Simpler models, binomial distribution, the Poisson distribution, simple and multivariate normal distributions;
- Central elements of Bayesian statistics and modeling;
- Central elements from linear algebra
- Gradient methods for data optimization
- Monte Carlo methods, Markov chains, Metropolis-Hastings algorithm;
- Estimation of errors using cross-validation, blocking, bootstrapping and jackknife methods;
- Practical optimization using Singular-value decomposition and least squares for parameterizing data.
- Principal Component Analysis.
Machine learning
The following topics will be covered
- Linear methods for regression and classification;
- Boltzmann machines;
- Neural networks;
- Decisions trees and nearest neighbor algorithms
- Support vector machines
Learning outcomes and overarching aims of this course
The course introduces a variety of central algorithms and methods
essential for studies of data analysis and machine learning. The
course is project based and through the various projects, normally
three, you will be exposed to fundamental research problems
in these fields, with the aim to reproduce state of the art scientific
results. The students will learn to develop and structure large codes
for studying these systems, get acquainted with computing facilities
and learn to handle large scientific projects. A good scientific and
ethical conduct is emphasized throughout the course.
- Understand linear methods for regression and classification;
- Learn about neural network;
- Learn about basic data analysis, Bayesian statistics, Monte Carlo methods, data optimization and machine learning;
- Be capable of extending the acquired knowledge to other systems and cases;
- Have an understanding of central algorithms used in data analysis and machine learning;
- Gain knowledge of central aspects of Monte Carlo methods, Markov chains, Metropolis and Gibbs samplers and their possible applications;
- Work on numerical projects to illustrate the theory. The projects play a central role and students are expected to know modern programming languages like Python or C++.
Other courses on Data science and Machine Learning at UiO
The link here https://www.mn.uio.no/english/research/about/centre-focus/innovation/data-science/studies/ gives an excellent overview of courses on Machine learning at UiO.
- STK2100 Machine learning and statistical methods for prediction and classification.
- IN3050 Introduction to Artificial Intelligence and Machine Learning. Introductory course in machine learning and AI with an algorithmic approach.
- STK-INF3000/4000 Selected Topics in Data Science. The course provides insight into selected contemporary relevant topics within Data Science.
- IN4080 Natural Language Processing. Probabilistic and machine learning techniques applied to natural language processing.
- STK-IN4300 – Statistical learning methods in Data Science. An advanced introduction to statistical and machine learning. For students with a good mathematics and statistics background.
- INF4490 Biologically Inspired Computing. An introduction to self-adapting methods also called artificial intelligence or machine learning.
- IN-STK5000 Adaptive Methods for Data-Based Decision Making. Methods for adaptive collection and processing of data based on machine learning techniques.
- IN5400/INF5860 – Machine Learning for Image Analysis. An introduction to deep learning with particular emphasis on applications within Image analysis, but useful for other application areas too.
- TEK5040 – Dyp læring for autonome systemer. The course addresses advanced algorithms and architectures for deep learning with neural networks. The course provides an introduction to how deep-learning techniques can be used in the construction of key parts of advanced autonomous systems that exist in physical environments and cyber environments.
Additional courses of interest
- STK4051 Computational Statistics
- STK4021 Applied Bayesian Analysis and Numerical Methods
Best wishes to you all and thanks so much for your heroic efforts this semester
© 1999-2018, Morten Hjorth-Jensen Email<EMAIL_ADDRESS>Released under CC Attribution-NonCommercial 4.0 license


{% extends "_base.html" %} {% load static %} {% block content %}
This project will accept data in CSV format over SSH or SFTP to a secure area within the University of Oxford (how to get involved).
Participating organisations must provide the required fields (marked with an asterisk) on a monthly basis.
All other fields are optional. However, the more fields that are provided, the better potential there is for us to provide more powerful analyses.
You should also provide reference range data, preferably in a machine-readable format (e.g. a spreadsheet), and any mapping tables you have between your lab codes, analyte names, and READ codes.
On completion of any data sharing agreements, we will provide you with a login to upload data to your own area in our secure file server.
| Field | Description | Example value |
|---|---|---|
|
analyte_lab_code
|
The lab’s code for the test
|
WBC, H1BAc |
|
analyte_lab_name
|
The lab’s full name for the text
|
Serum total protein level
|
|
analyte_read_code
|
The READ code for the test
|
44D1.00 |
|
analyte_snomed_code
|
The SNOMED code for the test
|
200197461 |
|
analyte_result_measurement
|
Numerical value of a measurement result
|
14.4 |
|
analyte_result_units
|
The units that the test is measured in
|
mmol/L |
|
analyte_result_date
|
The date the measurement was made
|
2018-01-31 |
|
analyte_is_abnormal
|
A flag to show if results are considered within or outside reference range
|
true, false |
|
analyte_is_abnormal_direction
|
For results outside the reference range, is it abnormally high or abnormally low?
|
high,low |
|
analyte_result_comments
|
Free text field for additional comments about the measurement
|
calculated using the CKD-EPI creatinine equation
|
|
analyte_lab_lims
|
The LIMS used to record the test (software and version)
|
WinPath 1.2 |
| specimen_code |
An identifier for the specimen
|
AB12K551W |
|
specimen_taken_date
|
Date the specimen was taken
|
2018-01-30 |
|
specimen_received_date
|
Date the specimen was received by the lab
|
2018-01-30 |
| specimen_type |
The type of the sample
|
blood |
|
requestor_organisation_name
|
Name of the location where the request originated
|
Beech Street Practice
|
|
requestor_organisation_code
|
ODS code of the location where the request originated
|
Y74004 |
|
requestor_name
|
Name of the requestor
|
Dr B Anderson |
|
requestor_registration_code
|
Registration code for the requestor
|
1032213B |
|
requestor_comments
|
Free text field for additional information from the requestor, e.g. clinical observation
|
Investigation for suspected anaemia
|
|
requestor_order_set
|
The tests as requested by the requestor. This may be an analyte (e.g. haemoglobin), a battery (e.g. FBC), or a syndrome-specific test group (e.g. TATT)
|
|
|
requestor_used_ordercomms
|
A flag to show if the request came via an ordercomms system, or manually
|
true, false |
|
internal_patient_identifier
|
Unique identifier for the patient. This will ideally be a pseudonymised identifier which is consistent over time, typically the hospital unit number, but never the NHS number as this is not sufficiently pseudonomised
|
10922132 |
|
patient_department_code
|
Code for department where patient was seen, e.g. GP surgery, A&E
|
GP,AE |
| patient_sex |
Administrative sex of patient
|
M,F |
| patient_age | Age of patient | 35 |


lcc.stars_processing.utilities package¶
Submodules¶
lcc.stars_processing.utilities.base_decider module¶
-
class
lcc.stars_processing.utilities.base_decider.
BaseDecider
¶ Bases:
abc.ABC
A decider class works with “coordinates” (specification) of objects. It can learn identify inspected group of objects according to “coordinates” of searched objects and other objects.
All decider classes have to inherit this abstract class. That means that they need to implement several methods: “learn” and “evaluate”. Also all of them have to have “threshold” attribute. To be explained read comments below.
-
threshold
¶ float – Probability (1.0 means 100 %) level. All objects with probability of membership to the group higher then the threshold are considered as members.
-
threshold = 0.8
-
evaluate
(star_coords)¶ Parameters: star_coords (list) – Coordinates of inspected star got from sub-filters Returns: Probability that inspected star belongs to the searched group of objects Return type: list of lists
-
evaluateList
(stars_coords)¶ Parameters: stars_coords (list) – Coordinates of inspected stars (e.g. obtained from sub-filters) Returns: Probabilities that inspected stars belongs to the searched group of objects Return type: list
-
filter
(stars_coords, threshold=None)¶ Parameters: - stars_coords (list) – Coordinates of inspected stars
- threshold (float) – Treshold value for filtering (number from 0 to 1)
Returns: Return type: List of True/False whether coordinates belong to the searched group of objects
-
getBestCoord
(stars_coords)¶ Parameters: stars_coords (list) – Coordinates of inspected stars got from sub-filters Returns: Coordinates with highest probability of membership to the searched group (one list of coordinates) Return type: list
-
getStatistic
(right_coords, wrong_coords, threshold=None)¶ Parameters: - right_coords (list) – Parameter-space coordinates of searched objects
- wrong_coords (list) – Parameter-space coordinates of other objects
- threshold (float) – Treshold value for filtering (number from 0 to 1)
Returns: statistical information –
- precision (float)
True positive / (true positive + false positive)
- accuracy (float)
(True positive + true negative) / (no of all samples)
- f1_score (float)
2 * true positive / (2 * true positive + false positive + false negative)
- true_positive_rate (float)
Proportion of positives that are correctly identified as such
- true_negative_rate :(float)
Proportion of negatives that are correctly identified as such
- false_positive_rate (float)
Proportion of positives that are incorrectly identified as negatives
- false_negative_rate (float)
Proportion of negatives that are incorrectly identified as positives
Return type: dict
-
learn
(right_coords, wrong_coords)¶ After executing this method the decider object is capable to recognize objects according their “coordinates” via “filter” method.
Parameters: - right_coords (list) – “Coordinates” of searched objects
- wrong_coords (list) – “Coordinates” of other objects
Returns: None
Return type: NoneType
-
lcc.stars_processing.utilities.base_descriptor module¶
-
class
lcc.stars_processing.utilities.base_descriptor.
BaseDescriptor
¶ Bases:
abc.ABC
Base class for all filters. It is something like interface (check whether subclasses have certain methods
-
LABEL
= ''¶
-
NONE_VALUE
= None¶
-
getFeatures
(star)¶ Get feature from star object
Parameters: star (lcc.entities.star.Star object) – Star to process Returns: Features of the processed star Return type: list, iterable, int, float
-
getSpaceCoords
(stars)¶ Get list of parameters coordinates according to descriptor implementation
Parameters: stars (list of Star objects) – Stars with color magnitudes in their ‘more’ attribute Returns: List of coordinates Return type: list
-
-
class
lcc.stars_processing.utilities.base_descriptor.
Learnable
¶ Bases:
object
Common class for all filters which are able to call “learn” by yourself. All these classes need to be able obtain their space coordinates via getSpaceCoords. Then the learning is the same (see learn method below).
Optionally there can be labels on plots if a class has label attribute, which is list of string contains label for data.
Also after learning the ‘learned’ attribute is set to ‘True’ if exists.
Moreover plot is saved if class has plot_save_path attribute is not None or ‘’
-
getSpaceCoords
(stars)¶ Parameters: stars (list of Star objects) – Returns: List of list of numbers (coordinates) Return type: list of lists
-
learn
(searched_stars, contamination_stars, learn_num='')¶ Teach filter to recognize searched stars
Parameters: - searched_stars (list of Star objects) – Searched stars to learn
- contamination_stars (list of Star objects) – Contamination stars to learn
- learn_num (str, int) – Optional identifier for the learning
Returns: Return type: None
-
lcc.stars_processing.utilities.compare module¶
-
class
lcc.stars_processing.utilities.compare.
ComparativeBase
¶ Bases:
abc.ABC
This class is responsible for comparing light curves of inspected stars with the template stars
-
compar_stars
¶ list, iterable – List of Star objects which represent searched group of star objects
-
compareTwoStars
(*args, **kwargs)¶
-
getFeatures
(star)¶ Get difference in symbolic space of the investigated star from the template
Parameters: star (lcc.entities.star.Star object) – Star to process Returns: Difference in symbolic space of the investigated star from the template Return type: list
-
loadCompStars
(comp_stars)¶ Load comparative stars for the template sample
Parameters: comp_stars (list) – Stars for the template Returns: Return type: None
-
lcc.stars_processing.utilities.sax module¶
-
exception
lcc.stars_processing.utilities.sax.
DictionarySizeIsNotSupported
¶ Bases:
ValueError
-
exception
lcc.stars_processing.utilities.sax.
OverlapSpecifiedIsNotSmallerThanWindowSize
¶ Bases:
ValueError
-
class
lcc.stars_processing.utilities.sax.
SAX
(word_size=8, alphabet_size=10, scaling_factor=1)¶ Bases:
object
This class manages symbolic representation of data series via Symbolic Aggregate approXimation method. It translates series of data to a words, which can then be compared with other such words in symbolic distance space.
-
word_size
¶ int – Number of letters in transformed word
-
alphabet_size
¶ int – Size of alphabet counted from A (3 means A, B, C)
-
scaling_factor
¶ int, float – Scaling factor can be used to scale result dissimilarity of two words created from light curves of different lengths
-
beta
¶ list – Breakpoints for given alphabets size
-
A_OFFSET
= 97¶
-
MAX_ALPH_SIZE
= 20¶
-
MIN_ALPH_SIZE
= 3¶
-
alphabetize
(paaX)¶ Converts the Piecewise Aggregate Approximation of x to a series of letters.
Parameters: paaX (list, iterable) – Data series (list of numbers) Returns: SAX word Return type: str
-
build_letter_compare_dict
()¶ Builds up the lookup table to determine numeric distance between two letters given an alphabet size.
Returns: Return type: None
-
compare_letters
(la, lb)¶ Compare two letters based on letter distance return distance between
Parameters: - la (str) – First letter
- lb (str) – Second letter
Returns: Distance between two letters
Return type: float
-
compare_strings
(sA, sB)¶ Compares two strings based on individual letter distances.
Parameters: - sA (str) – Word to compare
- aB (str) – Word to compare
Returns: Dissimilarity of two words
Return type: float
-
to_letter_rep
(x)¶ Function takes a series of data, x, and transforms it to a string representation.
Parameters: x (list, iterable) – Data series Returns: - str – SAX word
- list – Indices
-
lcc.stars_processing.utilities.superv_base_decider module¶
-
class
lcc.stars_processing.utilities.superv_base_decider.
SupervisedBase
(clf, threshold=0.5)¶ Bases:
lcc.stars_processing.utilities.base_decider.BaseDecider
Base class for sklearn library supervised classes transformed to the package content. It is not intended to use this directly, but thru certain method subclasses.
-
threshold
¶ float – Border probability value (objects with probability higher then this value is considered as searched object)
-
learner
¶ sklearn object – Learner object for desired method of supervised learning
-
evaluate
(coords)¶ Get probability of membership
Parameters: coords (list of lists) – List of prameter space coordinates Returns: List of probabilities Return type: list of floats
-
learn
(right_coords, wrong_coords)¶ Learn to recognize objects
Parameters: - right_coords (iterable) – List of coordinates (list of numbers) of searched objects
- wrong_coords (iterable) – List of coordinates (list of numbers) of contamination objects
Returns: None
Return type: NoneType
-
lcc.stars_processing.utilities.symbolic_representation module¶
-
class
lcc.stars_processing.utilities.symbolic_representation.
SymbolicRepresentation
¶ Bases:
abc.ABC
This common class for all descriptors based on symbolic representation of data.
-
compareTwoStars
(star, comp_star)¶ Compare two stars according to a filter implementation
Parameters: - star (Star instance) – Star to compare
- comp_star (Star instance) – Star to compare
Returns: Dissimilarity of two stars
Return type: float
-
lcc.stars_processing.utilities.unsupervised_base module¶
-
class
lcc.stars_processing.utilities.unsupervised_base.
UnsupervisedBase
(classifier, params, threshold=0.5, **kwargs)¶ Bases:
lcc.stars_processing.utilities.base_decider.BaseDecider
classdocs
-
evaluate
(star_coords)¶
-
learn
(coords)¶
-
Module contents¶
There are managers responsible for stars to have certain parameters for filtering


{% extends "base.html" %} {% load i18n %} {% block content %}
You can go back to the previous page, maybe visit the homepage or {% trans 'log in again' %}


Banff National Park Canada's oldest national park, established in 1885 in the Rocky Mountains. Within Banff is Moraine Lake - a glacially fed lake in Banff National Park, outside the Village of Lake Louise, Alberta, Canada. Learn More
This text is muted.
This text is important.
This text indicates success.
This text represents some information.
This text represents a warning.
This text represents danger.
Secondary text.
This text is dark grey.
Default body color.
Keep close to Nature's heart... and breakclear away, once in awhile, and climb a mountain or spend a week in the woods. Wash your spirit clean.
- John Muir
Banff National Park /ˈbæmf/ is Canada's oldest national park, established in 1885 in the Rocky Mountains. The park, located west of Calgary in the province of Alberta, encompasses 6,641 square kilometres (2,564 sq mi) of mountainous terrain, with numerous glaciers and ice fields, dense coniferous forest, and alpine landscapes. The Icefields Parkway extends from Lake Louise, connecting to Jasper National Park in the north.
Throughout its history, Banff National Park has been shaped by tension between conservationist and land exploitation interests. The park was established on 25 November 1885 as Banff Hot Springs Reserve, in response to conflicting claims over who discovered hot springs there, and who had the right to develop the hot springs for commercial interests. The conservationists prevailed when Prime Minister John A. Macdonald set aside the hot springs as a small protected reserve, which was later expanded to include Lake Louise and other areas extending north to the Columbia Icefield.
Lake Louise, named Lake of the Little Fishes by the Stoney Nakota First Nations people, is a glacial lake within Banff National Park in Alberta, Canada. It is located 5 km (3.1 mi) west of the Hamlet of Lake Louise and the Trans-Canada Highway (Highway 1). The emerald colour of the water comes from rock flour carried into the lake by melt-water from the glaciers that overlook the lake. The lake has a surface of 0.8 km2 (0.31 sq mi) and is drained through the 3 km long Louise Creek into the Bow River.
The Peyto Glacier is situated in the Canadian Rockies in Banff National Park, Alberta, Canada, approximately 90 km (56 mi) northwest of the town of Banff, and can be accessed from the Icefields Parkway. Peyto Glacier is an outflow glacier from the Wapta Icefield, which rests along the Continental divide. The glacier snout is subject to high melt rates from season to season and there is marked surface lowering on several parts of the glacier. Glacial silt, which is carried from the glacier by streams, ensures a turquoise appearance to Peyto Lake, a popular tourist destination.
The Mistaya River is a short river in western Alberta, Canada. It flows through the Canadian Rockies, and a section of the Icefields Parkway was built along its course. Mistaya River originates in Peyto Lake, a glacial lake of typical blue colour (due to rock flour). Mistaya flows north-west, receiving the waters of creeks such as Delta, Silverhorn, Cirque, Noyes, ChephrenTotem, Epaulette, Bison, Kaufmann and Sarback. A series of elongated lakes are formed along the river: Mistaya Lake and Waterfowl Lakes.
Lookee here a Big Horn!
Lookee here a Big Horn!
Lookee here a Big Horn!
Lookee here a Big Horn!
Lookee here a Big Horn!
Lookee here a Big Horn!
Lookee here a Big Horn!
Lookee here a Big Horn!
Lookee here a Big Horn!
Lookee here a Big Horn!
Lookee here a Big Horn!
Lookee here a Big Horn!
Lookee here a Big Horn!
Lookee here a Big Horn!
Lookee here a Big Horn!
Lookee here a Big Horn!
| Animal | Species | Genus | Family |
|---|---|---|---|
| Grizzly Bears | Brown Bear | Ursus | Ursidae |
| North American Beavers | Castor canadensis | Castor | Castoridae |
| North American Cougars | Cougar | Puma | Felidae |
| Canada Lynx | Lynx | Lynx | Felidae |
| Elk | Canadensis | Cervidae | Cervus |
| Bighorn Sheep | Canadensis | Ovis | Bovidae |
| Ospreys | Haliaetus | Pandion | Pandionidae |
| Hoary Marmot | Marmota caligata | Marmota | Sciuridae |
| Animal | Species | Genus | Family |
|---|---|---|---|
| Grizzly Bears | Brown Bear | Ursus | Ursidae |
| North American Beavers | Castor canadensis | Castor | Castoridae |
| North American Cougars | Cougar | Puma | Felidae |
| Canada Lynx | Lynx | Lynx | Felidae |
| Elk | Canadensis | Cervidae | Cervus |
| Bighorn Sheep | Canadensis | Ovis | Bovidae |
| Ospreys | Haliaetus | Pandion | Pandionidae |
| Hoary Marmot | Marmota caligata | Marmota | Sciuridae |


Suresh Dara (Regn. No. 2012DR0023), Awarded 2015 Title of thesis: Evolutionary computation for feature selection, classification, and validation from high-dimensional data
Manoj Kumar Shukla (Regn. No. 2012DR1088), Awarded 2015 Title of thesis: Degraded Script Identification of Devanagari and Bangla script
Baijnath Kaushik (Regn. No. 2013DR1106), Awarded 2014 Title of thesis: Degraded Script Identification of Devanagari and Bangla Performance evaluation using approximated ANNS for solving some reliability problems in complex networks
Mohammad Nadeem, (Reg. No: 2013DR0059), Awarded 2015 Title of thesis: Designing Soft Computing Techniques for Parameter Estimation and Optimiza- tion for Pelletization
Annavarapu Chandra Sekhara Rao, (Reg. No: 2013DR1042), Awarded 2016 Title of thesis: Analysis and Synthesis of Public Bioinformatic data using Datamining and Ma- chine Learning Techniques
P. CHJ. Srinivasa Rao (Regn. No. 2012DR0152), Awarded 2017 Title of thesis: Degraded Script Identification of Devanagari and Bangla Performance evaluation using approximated ANNS for solving some reliability problems in complex networks
Rohit Kumar Yadav, (Reg. No: 2012DR0132), Awarded 2017 Title of thesis: Design of Soft Computing Methodologies for Bioinformatics Problems
Praveen Lalwani, (Reg. No: 2014DR0023), Awarded 2017 Title of thesis: Study and Investigation of routine protocols for Wireless Network using Soft Computing
Abeg Kumar Jaiswal, (Reg. No: 2014DR0249), Awarded 2017 Title of thesis: Pattern Recognition and Classification of EEG Signals using Machine Learning
In addition, 07 Full Time and 4 Part time Scholars are currently guiding


--- layout: post title: vim git blame tags: ---
Often when working on a project in git, you may want to be able to quickly see made the code addition that you’re working on. If you’re in vim this is simple. Add the command below to your vimrc file:
vmap b :!git blame =expand("%:p") \| sed -n =line("',=line("'>") p
Now if you highlight any section of code and then press Leader+b, git will show you who edited the lines of code.


govdat
is an R package to search and retrieve data from two sets of APIs, the Sunlight Labs APIs, andn the New York Times congress API.
Returned objects from functions are simple lists. That is, you likely will want to take output objects and make data.frames, vectors, matrices, etc. In future versions of govdat, I will return data.frame's when possible as those are easy to work with in R for beginners, though advanced users probably like lists more (I'm guessing, or just the raw JSON, eh)?
The following are examples of using the Sunlight Labs API. I will add examples of using the New York Times Congress API once their site is up again; I'm doing this on 2013-08-28, just after the takedown of their site due to hackers.
{% highlight r %} install.packages("devtools") library(devtools) install_github("govdat", "schamberlain") {% endhighlight %}
{% highlight r %} library(govdat) {% endhighlight %}
{% highlight r %} library(govdat) key <- getOption("SunlightLabsKey") out <- sll_cg_getcommittees(id = "JSPR", key = sunlightkey) out$response$committee$members[[1]]$legislator[1:5] {% endhighlight %}
{% highlight text %} $website [1] "http://www.alexander.senate.gov"
$fax [1] "202-228-3398"
$govtrack_id [1] "300002"
$firstname [1] "Lamar"
$chamber [1] "senate" {% endhighlight %}
{% highlight r %} out <- sll_cg_getcommitteesallleg(bioguide_id = "S000148", key = sunlightkey) out$response$committees[[1]] {% endhighlight %}
{% highlight text %} $committee $committee$chamber [1] "Senate"
$committee$id [1] "SSRA"
$committee$name [1] "Senate Committee on Rules and Administration" {% endhighlight %}
{% highlight r %} out <- sll_cg_getdistrictlatlong(latitude = 35.778788, longitude = -78.787805, key = sunlightkey) out$response$districts {% endhighlight %}
{% highlight text %} [[1]] [[1]]$district [[1]]$district$state [1] "NC"
[[1]]$district$number [1] "2" {% endhighlight %}
{% highlight r %} out <- sll_cg_getdistrictzip(zip = 27511, key = sunlightkey) out$response$districts {% endhighlight %}
{% highlight text %} [[1]] [[1]]$district [[1]]$district$state [1] "NC"
[[1]]$district$number [1] "2"
[[2]] [[2]]$district [[2]]$district$state [1] "NC"
[[2]]$district$number [1] "4"
[[3]] [[3]]$district [[3]]$district$state [1] "NC"
[[3]]$district$number [1] "13" {% endhighlight %}
{% highlight r %} out <- sll_cg_getlegislatorsearch(name = "Reed", key = sunlightkey) out$response$results[[1]]$result$legislator[1:5] {% endhighlight %}
{% highlight text %} $website [1] "http://www.reed.senate.gov"
$fax [1] "202-224-4680"
$govtrack_id [1] "300081"
$firstname [1] "John"
$chamber [1] "senate" {% endhighlight %}
{% highlight r %} out <- sll_cg_legislatorsallforzip(zip = 77006, key = sunlightkey) library(plyr) ldply(out$response$legislators, function(x) data.frame(x$legislator[c("firstname", "lastname")])) {% endhighlight %}
{% highlight text %} firstname lastname 1 Sheila Jackson Lee 2 Ted Cruz 3 John Cornyn 4 Ted Poe {% endhighlight %}
{% highlight r %} sll_cw_timeseries(phrase = "united states", start_date = "2009-01-01", end_date = "2009-04-30", granularity = "month", key = sunlightkey) {% endhighlight %}
{% highlight text %} 4 records returned {% endhighlight %}
{% highlight text %} count month 1 3805 2009-01-01 2 3512 2009-02-01 3 6018 2009-03-01 4 2967 2009-04-01 {% endhighlight %}
{% highlight r %} library(ggplot2) dat <- sll_cw_timeseries(phrase = "climate change", key = sunlightkey) {% endhighlight %}
{% highlight text %} 1354 records returned {% endhighlight %}
{% highlight r %} ggplot(dat, aes(day, count)) + geom_line() + theme_grey(base_size = 20) {% endhighlight %}
{% highlight r %} dat_d <- sll_cw_timeseries(phrase = "climate change", party = "D", key = sunlightkey) {% endhighlight %}
{% highlight text %} 908 records returned {% endhighlight %}
{% highlight r %} dat_d$party <- rep("D", nrow(dat_d)) dat_r <- sll_cw_timeseries(phrase = "climate change", party = "R", key = sunlightkey) {% endhighlight %}
{% highlight text %} 623 records returned {% endhighlight %}
{% highlight r %} dat_r$party <- rep("R", nrow(dat_r)) dat_both <- rbind(dat_d, dat_r) ggplot(dat_both, aes(day, count, colour = party)) + geom_line() + theme_grey(base_size = 20) + scale_colour_manual(values = c("blue", "red")) {% endhighlight %}
{% highlight r %} out <- sll_os_billsearch(terms = "agriculture", state = "tx", chamber = "upper", key = sunlightkey) lapply(out, "[[", "title")[100:110] {% endhighlight %}
{% highlight text %} [[1]] [1] "Relating to the sale by the Brazos River Authority of certain property at Possum Kingdom Lake."
[[2]] [1] "Proposing a constitutional amendment providing immediate additional revenue for the state budget by creating the Texas Gaming Commission, and authorizing and regulating the operation of casino games and slot machines by a limited number of licensed operators and certain Indian tribes."
[[3]] [1] "Relating to production requirements for holders of winery permits."
[[4]] [1] "Relating to the use of human remains in the training of search and rescue animals."
[[5]] [1] "Relating to end-of-course assessment instruments administered to public high school students and other measures of secondary-level performance."
[[6]] [1] "Relating to public high school graduation, including curriculum and assessment requirements for graduation and funding in support of certain curriculum authorized for graduation."
[[7]] [1] "Relating to certain residential and other structures and mitigation of loss to those structures resulting from natural catastrophes; providing a criminal penalty."
[[8]] [1] "Recognizing March 28, 2013, as Texas Water Conservation Day at the State Capitol."
[[9]] [1] "Recognizing March 26, 2013, as Lubbock Day at the State Capitol."
[[10]] [1] "In memory of Steve Jones."
[[11]] [1] "Relating to the regulation of dangerous wild animals." {% endhighlight %}
{% highlight r %} out <- sll_os_legislatorsearch(state = "tx", party = "democratic", active = TRUE, key = sunlightkey) out[[1]][1:4] {% endhighlight %}
{% highlight text %} $last_name [1] "Naishtat"
$updated_at [1] "2013-08-29 03:03:22"
$nimsp_candidate_id [1] "112047"
$full_name [1] "Elliott Naishtat" {% endhighlight %}
{% highlight r %} out <- sll_ts_aggregatesearch("Nancy Pelosi", key = sunlightkey) out <- lapply(out, function(x) { x[sapply(x, is.null)] <- "none" x }) ldply(out, data.frame) {% endhighlight %}
{% highlight text %}
name count_given firm_income count_lobbied
1 Nancy Pelosi (D) 0 0 0
2 Nancy Pelosi for Congress 7 0 0
seat total_received state lobbying_firm count_received party
1 federal:house 14173534 CA none 10054 D
2 none 0 none
{% highlight r %} out <- sll_ts_aggregatetopcontribs(id = "85ab2e74589a414495d18cc7a9233981", key = sunlightkey) ldply(out, data.frame) {% endhighlight %}
{% highlight text %} employee_amount total_amount total_count 1 64000.00 101300.00 79 2 3500.00 90000.00 29 3 0 86600.00 48 4 0 85000.00 32 5 0 82500.00 37 6 0 77000.00 19 7 0 76000.00 36 8 0 72500.00 18 9 0 72500.00 21 10 8000.00 72000.00 31 name direct_count employee_count 1 Akin, Gump et al 16 63 2 American Fedn of St/Cnty/Munic Employees 25 4 3 National Assn of Realtors 48 0 4 United Auto Workers 32 0 5 National Education Assn 37 0 6 Teamsters Union 19 0 7 National Assn of Letter Carriers 36 0 8 Intl Brotherhood of Electrical Workers 18 0 9 Sheet Metal Workers Union 21 0 10 Wells Fargo 20 11 id direct_amount 1 105dcfc8c9384875a099af230dad9917 37300.00 2 fb702029157e4c7c887172eba71c66c5 86500.00 3 bb98402bd4d3471cad392a671ecd733a 86600.00 4 4d3167b97c9f48deb433aad57bb0ee44 85000.00 5 1b8fea7e453d4e75841eac48ff9df550 82500.00 6 f89c8e3ab2b44f72971f91b764868231 77000.00 7 390767dc6b4b491ca775b1bdf8a36eea 76000.00 8 b53b4ad137d743a996f4d7467700fc88 72500.00 9 425be85642b24cc2bc3d8a0bb3c7bc92 72500.00 10 793070ae7f5e42c2a76a58663a588f3d 64000.00 {% endhighlight %}


| Deadline | Location | Conference Name and date |
|---|---|---|
|
2
Monday
October, 2017
|
Sydney, Australia |
Learning Analytics and Knowledge Conference - (5-9, March 2018) - Call for papers
|
|
15
Wednesday
November, 2017
|
Waterloo, Canada |
Persuasive Technology - (16-19, April 2018)
|
|
1
Thursday
February, 2018
|
Madras, India |
DESRIST - (3-6, June 2018)
|
|
12
Monday
February, 2018
|
Bled, Slovenia |
BLED - (17-20, June 2018) - Call for papers
|
|
28
Wednesday
February, 2018
|
New Orleans, LA |
AMCIS - (16-18, August 2018)
|
|
2
Wednesday
May, 2018
|
San Francisco, CA |
ICIS - (13-16, December 2018)
|
|
15
Friday
June, 2018
|
Maui, Hawaii |
HICSS - (8-11, January 2019) -
Call for papers
|
|
1
Saturday
December, 2018
|
Stockholm-Uppsala, Sweden |
ECIS - (8-14, June 2019)
|


"""Custom expected condition classes"""
from selenium.common.exceptions import NoSuchElementException
from webdriver_test_tools.common import utils
# TODO: add inverse conditions for each? at least for consistency
# Expected Condition Classes
[docs]class element_to_exist:
"""Custom wait condition for WebdriverWait() that checks if an element
exists
"""
def __init__(self, locator):
self.locator = locator
def __call__(self, driver):
return _element_exists(driver, self.locator)
[docs]class element_to_not_exist:
"""Custom wait condition for WebdriverWait() that checks if an element
does not exists
"""
def __init__(self, locator):
self.locator = locator
def __call__(self, driver):
return not _element_exists(driver, self.locator)
[docs]class element_to_be_enabled:
"""Custom wait condition for WebdriverWait() that checks if an element
is enabled
"""
def __init__(self, locator):
self.locator = locator
def __call__(self, driver):
return driver.find_element(*self.locator).is_enabled()
[docs]class element_to_be_disabled:
"""Custom wait condition for WebdriverWait() that checks if an element
is disabled
"""
def __init__(self, locator):
self.locator = locator
def __call__(self, driver):
return not driver.find_element(*self.locator).is_enabled()
[docs]class element_to_be_in_view:
"""Custom wait condition for WebDriverWait() that uses JavaScript to check
if an element is scrolled into view
"""
def __init__(self, locator, fully_in_view=False):
self.locator = locator
self.fully_in_view = fully_in_view
def __call__(self, driver):
element = driver.find_element(*self.locator)
return _is_scrolled_into_view(driver, element, self.fully_in_view)
[docs]class base_url_to_be:
"""An expectation for checking the current url, ignoring query strings
(i.e. strips '?' and everything after it and only looks at the base URL)
url is the expected URL, which must be an exact match with the current base
URL
Optionally accepts the parameter ``ignore_trailing_slash`` (default: True),
which will strip any trailing '/' from the expected URL and current base
URL before comparing
returns True if the base URL matches, false otherwise
"""
def __init__(self, url, ignore_trailing_slash=True):
self.url = url
self.ignore_trailing_slash = ignore_trailing_slash
def __call__(self, driver):
base_url = utils.get_base_url(driver.current_url)
expected_url = self.url
if self.ignore_trailing_slash:
expected_url, base_url = self._handle_trailing_slashes(base_url)
return expected_url == base_url
def _handle_trailing_slashes(self, base_url):
"""Utility function to strip trailing '/' from the expected URL and
current base URL
:param base_url: The current URL with any query strings stripped
:return: A tuple with (``self.url``, ``base_url``) with any trailing
'/' removed
"""
return (self._strip_trailing_slash(self.url),
self._strip_trailing_slash(base_url))
def _strip_trailing_slash(self, url):
if url.endswith('/'):
url = url[:-1]
return url
# Helper Methods
def _is_scrolled_into_view(driver, element, fully_in_view=True):
"""Returns True if the element is scrolled into view, False otherwise
Currently, Selenium doesn't offer a means of getting an element's location
relative to the viewport, so using JavaScript to determine whether the
element is visible within the viewport.
:param driver: Selenium WebDriver object
:param element: WebElement for the element to check
:param fully_in_view: (Default = True) If True, check that the element is
fully in view and not cut off. If False, check that it's at least
partially in view
:return: True if the element is scrolled into view, False otherwise
"""
# the JavaScript used to check if the element is in view.
script_string = '''
return function(el, strict) {
var rect = el.getBoundingClientRect();
var elemTop = rect.top;
var elemBottom = rect.bottom;
if (strict)
var isVisible = (elemTop >= 0) && (elemBottom <= window.innerHeight);
else
isVisible = elemTop < window.innerHeight && elemBottom >= 0;
return isVisible;
}(arguments[0],arguments[1])
'''
return driver.execute_script(script_string, element, fully_in_view)
def _element_exists(driver, element_locator):
"""Returns True if the element exists, False if not
This function is just a wrapper that catches the NoSuchElementException
thrown by driver.find_element() and returns a boolean based on whether the
exception occurred. Used for test assertions.
:param driver: Selenium WebDriver object
:param element_locator: Tuple in the format (by,selector) used to locate
target
:return: True if the element exists, False if not
"""
exists = True
try:
driver.find_element(*element_locator)
except NoSuchElementException:
exists = False
return exists


|
||||||||||
| PREV LETTER NEXT LETTER | FRAMES NO FRAMES |
Runner
-Classes.
SSHConnection
for remote execution.
CoreferencePair
s.
CoreferencePair
s.
Evaluation
results (to compare multiple MLProcesses).
FeatureExtractors
and
returns a new instance of it.
AbstractFeatureExtractor
s.
CoreferencePair
s.
FeatureType
.
MMAXParser
,
checks the features in their feature vectors, counts them and writes them into a
file together with their count.
Configuration
for the specified file name.
Configuration
for the default path.
Logger
.
MMAXParser
.
Properties
object.
Attribute
which is used for Weka attributes.
|
||||||||||
| PREV LETTER NEXT LETTER | FRAMES NO FRAMES |


Rails <IP_ADDRESS> (July 12, 2022)
- No changes.
Rails 5.2.8 (May 09, 2022)
- No changes.
Rails <IP_ADDRESS> (April 26, 2022)
-
Fix and add protections for XSS in
::ActionView::Helpers
and::ERB::Util
.Escape dangerous characters in names of tags and names of attributes in the tag helpers, following the XML specification. Rename the option
:escape_attributes
to:escape
, to simplify by applying the option to the whole tag.Álvaro Martín Fraguas
Rails 5.2.7 (March 10, 2022)
- No changes.
Rails <IP_ADDRESS> (March 08, 2022)
- No changes.
Rails <IP_ADDRESS> (February 11, 2022)
- No changes.
Rails <IP_ADDRESS> (February 11, 2022)
- No changes.
Rails 5.2.6 (May 05, 2021)
- No changes.
Rails 5.2.5 (March 26, 2021)
- No changes.
Rails <IP_ADDRESS> (May 05, 2021)
- No changes.
Rails <IP_ADDRESS> (February 10, 2021)
- No changes.
Rails <IP_ADDRESS> (September 09, 2020)
-
[CVE-2020-15169] Fix potential XSS vulnerability in the
translate
/t
helperJonathan Hefner
Rails <IP_ADDRESS> (May 18, 2020)
- [CVE-2020-8167] Check that request is same-origin prior to including CSRF token in XHRs
Rails <IP_ADDRESS> (March 19, 2020)
-
Fix possible XSS vector in
escape_javascript
helperCVE-2020-5267
Aaron Patterson
Rails <IP_ADDRESS> (December 18, 2019)
- No changes.
Rails 5.2.4 (November 27, 2019)
-
Allow programmatic click events to trigger
Rails
UJS click handlers. Programmatic click events (eg. ones generated byRails.fire(link, "click")
) don't specify a button. These events were being incorrectly stopped by code meant to ignore scroll wheel and right clicks introduced in #34573.Sudara Williams
Rails 5.2.3 (March 27, 2019)
-
Prevent non-primary mouse keys from triggering
Rails
UJS click handlers. Firefox fires click events even if the click was triggered by non-primary mouse keys such as right- or scroll-wheel-clicks. For example, right-clicking a link such as the one described below (with an underlying ajax request registered on click) should not cause that request to occur.<%= link_to 'Remote', remote_path, class: 'remote', remote: true, data: { type: :json } %>
Fixes #34541
Wolfgang Hobmaier
Rails <IP_ADDRESS> (March 11, 2019)
-
Only accept formats from registered mime types
A lack of filtering on mime types could allow an attacker to read arbitrary files on the target server or to perform a denial of service attack.
Fixes CVE-2019-5418 Fixes CVE-2019-5419
John Hawthorn, Eileen M. Uchitelle, Aaron Patterson
Rails 5.2.2 (December 04, 2018)
- No changes.
Rails <IP_ADDRESS> (November 27, 2018)
- No changes.
Rails 5.2.1 (August 07, 2018)
-
Fix leak of
skip_default_ids
andallow_method_names_outside_object
options to HTML attributes.Yurii Cherniavskyi
-
Fix issue with
button_to
'sto_form_params
button_to
was throwing exception when invoked withparams
hash that contains symbol and string keys. The reason for the exception was thatto_form_params
was comparing the given symbol and string keys.The issue is fixed by turning all keys to strings inside
to_form_params
before comparing them.Georgi Georgiev
-
Fix JavaScript views rendering does not work with Firefox when using Content Security Policy.
Fixes #32577.
Yuji Yaginuma
-
Add the
nonce: true
option forjavascript_include_tag
helper to support automatic nonce generation for Content Security Policy. Works the same way asjavascript_tag nonce: true
does.Yaroslav Markin
Rails 5.2.0 (April 09, 2018)
-
Pass the
:skip_pipeline
option inimage_submit_tag
when callingpath_to_image
.Fixes #32248.
Andrew White
-
Allow the use of callable objects as group methods for grouped selects.
Until now, the
option_groups_from_collection_for_select
method was only able to handle method names asgroup_method
andgroup_label_method
parameters, it is now able to receive procs and other callable objects too.Jérémie Bonal
-
Add
preload_link_tag
helper.This helper that allows to the browser to initiate early fetch of resources (different to the specified in
javascript_include_tag
andstylesheet_link_tag
). Additionally, this sends Early Hints if supported by browser.Guillermo Iguaran
-
Change
form_with
to generates ids by default.When
form_with
was introduced we disabled the automatic generation of ids that was enabled inform_for
. This usually is not an good idea since labels don't work when the input doesn't have an id and it made harder to test with Capybara.You can still disable the automatic generation of ids setting
config.action_view.form_with_generates_ids
tofalse.
Nick Pezza
-
Fix issues with
field_error_proc
wrappingoptgroup
and select divideroption
.Fixes #31088
Matthias Neumayr
-
Remove deprecated Erubis ERB handler.
Rafael Mendonça França
-
Remove default
alt
text generation.Fixes #30096
Cameron Cundiff
-
Add
srcset
option toimage_tag
helper.Roberto Miranda
-
Fix issues with scopes and engine on
current_page?
method.Fixes #29401.
Nikita Savrov
-
Generate field ids in
collection_check_boxes
andcollection_radio_buttons
.This makes sure that the labels are linked up with the fields.
Fixes #29014.
Yuji Yaginuma
-
Add
:json
type toauto_discovery_link_tag
to support JSON Feeds.Mike Gunderloy
-
Update
distance_of_time_in_words
helper to display better error messages for bad input.Jay Hayes
Please check 5-1-stable for previous changes.


Switch to the basic problem viewer.
Please note that the competition may contain a few imperfections. Please contact us concerning any problems or suggestions.


Loading Portfolios
To perform a margin calculation, a portfolio must be passed to the calculator API. This is represented by the
MarginPortfolio
interface.
Parsers are provided built-in for loading portfolios directly from files in several standard formats. However, a portfolio will often consist of a mix of ETD positions and OTC trades. This requires the use of multiple parsers. It may also be desirable to load portfolios from any of the supported file formats, without having to know in advance which format might be used.
The PortfolioLoader
utility is provided to abstract over all the trade parsers. This has a single, public, static
method load()
which takes URL references to one or more input files. These files are each parsed, automatically using
the correct parser, and the resulting trades are concatenated into a single MarginPortfolio
result.
MarginEnvironment environment = MarginEnvironmentFactory.buildBasicEnvironment(new EurexPrismaReplication());
... // populate environment with market data
URL etdFile = FileResources.byPath("etd.csv");
URL otcFile = FileResources.byPath("otc.csv");
OgmLinkResolver linkResolver = environment.getInjector().getInstance(OgmLinkResolver.class);
MarginPortfolio portfolio = PortfolioLoader.load(ImmutableList.of(etdFile, otcFile), linkResolver);
The link resolver allows securities, referenced in ETD positions, to be resolved from the market data already loaded into the environment.
It is also possible to zip multiple supported files together, and present them as a single ZIP file. For example, the
files referenced above might be zipped into all.zip
and equivalently loaded as follows:
MarginEnvironment environment = MarginEnvironmentFactory.buildBasicEnvironment(new EurexPrismaReplication());
... // populate environment with market data
URL tradeFile = FileResources.byPath("all.zip");
OgmLinkResolver linkResolver = environment.getInjector().getInstance(OgmLinkResolver.class);
MarginPortfolio portfolio = PortfolioLoader.load(ImmutableList.of(tradeFile), linkResolver);
For more details on the supported trade formats, see Portfolio.
The data may also come from a source other than files and be build programatically.
See the example code in EurexPrismaBasicApiIntegrationClient
for more information.
Error handling during loading
Filtering out matured trades in the portfolio
If the user presents a portfolio that contains trades that have already matured, a message is printed and the trade is filtered from the portfolio.
The message will be similar to:
WARN c.o.m.e.prisma.cli.common.CliLogger -
Found trade failure: OTC trade has expired: security name: T_10MM_362763
Filtering out trades that extend too far beyond yield curve
If the user portfolio contains a trade that is extremely long dated (for instance matures in 75 years), then the system cannot reliably value the transaction, will print a warning message and filter the trade from the portfolio.
The message will appear similar to:
WARN c.o.m.e.prisma.cli.common.CliLogger -
Found trade failure: OTC trade extends past final curve point: security name: T_10MM_15151
General parsing errors
Each of the input formats has its own unique parser. In general, if the parser encounters as error, the system will throw an exception and the user will be expected to fix the problem before proceeding. This is similar to handing missing or unparseable market data; if these inputs cannot be loaded, then it is not prudent to proceed with calculation.
An example error of a malformed OTC CSV input file in the portfolio:
com.opengamma.OpenGammaRuntimeException:
Encountered exception processing file: file:/tmp/myPortfolio/trade17052.csv
Caused by: java.lang.IllegalArgumentException: Unexpected instrument type: 17052
And an example of a missing portfolio input file:
com.opengamma.DataNotFoundException:
Error getting URL for requested resource at /testData/trade/XYZ15a.csv
Caused by: java.io.FileNotFoundException: class path resource [testData/trade/XYZ15a.csv]
cannot be resolved to URL because it does not exist


‘I had a client who expected me to be available at odd hours and was kind of demanding,’ says Erika Rains DeBlasi from Advisor Expressions. ‘The tipping point was when I saw him at Whole Foods as I was on my way to be induced. We stopped to get a few snacks to have at the hospital after the baby arrived. I had notified all my clients and put someone else in charge of the accounts. When we ran into him at the store, he starting immediately taking to me about work, even after I reminded him that I was on my way to the hospital. I knew then I had to fire someone who couldn’t show me any respect or consideration. It wasn’t worth it.’ Erika Rains DeBlasi
This is just one example of an unhealthy client relationship. Being harassed by a client while shopping is unavoidable, but being asked for endless revisions or new features can be avoided. To avoid these pitfalls, designers need to put everything that you will be delivering to the client in writing, and how you will handle the process.


911 Calls Capstone Project is my own exercise project from Udemy Python for Data Science and Machine Learning Bootcamp by Jose Portilla. In this project, I learned how to analyze and visualize the dataset to better understand 911 calls. In this project, I use Python Anaconda using Jupyter Notebook. For this capstone project we will be analyzing some 911 call data from Kaggle. The data contains the following fields:
- lat : String variable, Latitude
- lng : String variable, Longitude
- desc : String variable, Description of the Emergency Call
- zip : String variable, Zipcode
- title : String variable, Title
- timeStamp : String variable, YYYY-MM-DD HH:MM:SS
- twp : String variable, Township
- addr : String variable, Address
- e : String variable, Dummy variable (always 1)
Project Intro/Objective
The purpose of this project is show step-by-step how to analyze and visualize the dataset to better understand 911 calls and what originates them.
Project Library
- Numpy
- Pandas
- Matplotlib
- Seaborn
Data and Setup
In this section, I want to show some of the data information, it includes Data Frame Info and Data Frame Head.
Data Visualization
In this section, I want to visualize the data needed using seaborn and look for something strange about the data.
Reason Countplot
In this section, I will show you the countplot from the reason of all 911 calls. Before do this, I create a new feature from the title column where I split the reason and the department, where I got EMS, Traffic, and Fire departments.
Day of Week Countplot
In this section, I create a coountplot of the Day of Week column with hue based off of the Reason Column. Because timestamp column datatype is a string, I need to convert this column to datetime object. Then divide it to Hour, Month, and Day of Week. After that, I can plot the Day of Week countplot.
Month Countplot
In this section, I create a countplot of the Month column with hue based off of the Reason Column.
Exploratory Data Analysis
From month countplot, I can see that the our data has missing value, where there are some missing months. To see this missing data, I can use pandas and then visualize it using simple plot and lmplot (2D scatterplot with an optional overlaid regression line).
Create groupBy Data Using Month Column
In this section, I create groupBy data using month column and then count all the data for aggregation, and then we can see the groupBy data frame using head() of the data frame.
groupBy Data Visualization
Futhermore, I can visualize the data using simple plot and lmplot.
With simple plot and lmplot, we can see the data from month 9 to 11.
Visualize Available Data
For further understanding, we can visualize the available data. We can visualize the data by date and by departments. First, I have to create a new column called date from the timestamp then I can plot the data by date and by departments.
HeatMap and ClusterMap Data
To help me read the data, I can use HeatMap and ClusterMap. HeatMap and ClusterMap makes it easy to read some related data where I collect the related data in certain places.
Using groupBy I create a new table using day of week and date column and then count all the data.
Then I create HeatMap and ClusterMap using dayHour data frame.
Then using groupBy I create a new table using day of week and month column and then count all the data.
From all of the HeatMaps and ClusterMaps, we can conclude that:
- There are high 911 calls between hour 8-20.
- There are low 911 call between hour 22-6.
- Month 1, 4, and 7 has the most 911 call.
- Month 8 and 12 has low 911 call.
- On saturday month 1, there is the highest 911 call.
Additional Resources
- Header Backgrounds by Wallpaper Flare at wallpaperflare.com
- Kaggle Original Challenge Source
- For further explanation regarding python code, please kindly check this link.


{{ game.Name }}
First player: {{ game.FirstPlayerName }}
Second player: {{ game.SecondPlayerName }}
Game state: {{ { state: game.State, firstPlayerSymbol : game.FirstPlayerSymbol, secondPlayerSymbol : game.SecondPlayerSymbol } | gameStateFilter }}
There are no games


Now is the time for all good people to come to the aid of their cohort This first Stage 0 submission does not contain any bells or whistles.


GoPrep is an all-in-one tool created for the Weekly Meal Prep & Delivery business model.
GrandShipper is a recent start-up offering an intuitive, all-in-one shipping platform for USPS.
Blue Fountain Media has been consistently rated as one of the top digital agencies worldwide, receiving a top 10 honor from both AWWWARDS and the Interactive Media Awards.
My responsibilities at BFM include full-stack web development and project management.
I was brought in as the lead web developer to meet the increased demand faced by the company. There were several major projects which required immediate attention to meet urgent deadlines. This involved managing a front-end developer and a junior backend developer, along with liaising with clients' technical staff. These new projects were all built with a Laravel-based CMS which I heavily customised to meet the projects’ requirements.
In addition to developing new web applications, I was also responsible for maintaining and updating a wide array of live websites.
While working with CQ2 I felt that there were many standards and protocols which were worth putting in place to increase the efficiency of the development lifecycle. I put in place a project management system, version control systems, and performed numerous upgrades to the infrastructure.
At Textlocal I developed and deployed the new version of their API which primarily enabled users to send SMS and MMS messages remotely from their applications.
In addition, I developed the MMS functionality in the control panel. This tool allowed users to send customised media messages to their opt-in clients, with detailed analytics available for past campaigns. This particular feature had to be developed with efficiency in mind, as it was typical for customers to send tens of thousands of messages at once.
My last major project at Textlocal was to develop the first version of their Android application using Google's native SDK.


This interactive 3D visualization shows about 30,000 galaxies observed by the Dark Energy Spectroscopic Instrument (DESI) in about 5 hours. DESI targets four types of galaxies that you can toggle on/off below:
The volume of space shown here is very long and thin, and would fit behind your palm held at arm's length. Use the slider below to select your distance from earth, or click PLAY. When the animation is paused, use your mouse or finger to look around at the nearby galaxies.
Cosmic distance can be measured several ways which are displayed below:
Our direct measurements of galaxies provide angles and redshifts, but we need to assume a model of the cosmic expansion history to convert these to 3D positions in the universe today. The main parameters govering the recent expansion are the amounts of matter and dark energy present in the universe today.
Vary the sliders below to change the assumed expansion history and observe the effects on the 3D galaxy positions and the age of the universe. Note that when the two numbers do not add up to exactly one, the resulting universe is curved, and the familiar rules of Euclidean geometry no longer apply (for example, the angles of a large triangle no longer sum to 180 degrees).
This visualization was developed by David Kirkby using proprietary DESI data.


Gale Van Rossem DBC Blog
My 3 Favorite Websites & Why Visual Design is More Important Than Ever
When I visit a website, there are 3 main things that I look for that will very quickly determine whether or not I will stay on that site.
- How easy is it to find whatever I am looking for?
- How easy is it to figure out what I should do next?
- Is there anything about the site that is interesting enough to keep me around?
At first glance, based on my criteria, it might seem like the visual design of the site isn't very important. After all, I didn't list the visual...[READ MORE]
Kitchen vs. Table
I just watched Shereef Bishay in the famous "Fireside Chat" video. I am so pumped up right now, I might code for 8 more hours straight. It's 7:15pm now, so I don't know where that puts me. I'll let you do the math, 'cause I've got more important Rubyish type things to think about.
All kidding aside, I really am excited right now. I'm tired and a bit frazzled from all of the new knowledge that is swimming around in...[READ MORE]


|
XenForo
1.5.12
|
Public Member Functions | |
| getBannedUsers (array $conditions=array(), array $fetchOptions=array()) | |
| countBannedUsers (array $conditions=array()) | |
| getBannedUserById ($userId, array $fetchOptions=array()) | |
| getExpiredUserBans ($cutOff=null) | |
| prepareUserBanConditions (array $conditions, array &$fetchOptions) | |
| deleteExpiredUserBans ($cutOff=null) | |
| getBannedIps () | |
| countBannedIps () | |
| banIp ($ip) | |
| deleteBannedIps (array $ips) | |
| rebuildBannedIpCache () | |
| getDiscouragedIps () | |
| countDiscouragedIps () | |
| discourageIp ($ip) | |
| deleteDiscouragedIps (array $ips) | |
| rebuildDiscouragedIpCache () | |
| getBannedEmails () | |
| countBannedEmails () | |
| banEmail ($email) | |
| deleteBannedEmails (array $emails) | |
| rebuildBannedEmailCache () | |
| Public Member Functions inherited from XenForo_Model | |
| __construct () | |
| setLocalCacheData ($name, $value) | |
| resetLocalCacheData ($name=null) | |
| getModelFromCache ($class) | |
| setAllowCachedRead ($allowCachedRead) | |
| fetchAllKeyed ($sql, $key, $bind=array(), $nullPrefix='') | |
| limitQueryResults ($query, $limit, $offset=0) | |
| addFetchOptionJoin (array &$fetchOptions, $join) | |
| getConditionsForClause (array $sqlConditions) | |
| getOrderByClause (array $choices, array $fetchOptions, $defaultOrderSql='') | |
| addPositionLimit ($table, $limit, $offset=0, $column='position') | |
| prepareLimitFetchOptions (array $fetchOptions) | |
| prepareStateLimitFromConditions (array $fetchOptions, $table='', $stateField='message_state', $userField='user_id') | |
| standardizePermissionsAndUserId (&$permissions, &$userId=0) | |
| standardizeNodePermissionsAndUserId ($nodeId, &$permissions, &$userId=0) | |
| standardizePermissionCombinationIdAndUserId (&$permissionCombinationId, &$userId=0) | |
| standardizeViewingUserReference (array &$viewingUser=null) | |
| standardizeViewingUserReferenceForNode ($nodeId, array &$viewingUser=null, array &$nodePermissions=null) | |
| unserializePermissionsInList (array $items, $serializedKey, $targetKey='permissions') | |
| getContentTypesWithField ($fieldName) | |
| getContentTypeField ($contentType, $fieldName) | |
| getCutOffCondition ($column, $condition) | |
| assertValidCutOffOperator ($operator, $allowBetween=false) | |
Protected Member Functions | |
| _getIpRecord ($ip) | |
| Protected Member Functions inherited from XenForo_Model | |
| _getLocalCacheData ($name) | |
| _getDataRegistryModel () | |
| _getCache ($forceCachedRead=false) | |
| _getDb () | |
Additional Inherited Members | |
| Static Public Member Functions inherited from XenForo_Model | |
| static | create ($class) |
| Protected Attributes inherited from XenForo_Model | |
| $_cache = null | |
| $_db = null | |
| $_allowCachedRead = true | |
| $_localCacheData = array() | |
| $_modelCache = array() | |
| banEmail | ( | ) |
Bans the specified email. Wildcards are allowed. If no wildcards are given, they are automatically added in logical places (no or leading @ gives wildcard prefix; no or trailing . gives wildcard suffix).
Throws exceptions on malformed input.
| string |
| banIp | ( | $ip | ) |
Bans the specified IP or IP range. Ranges may have wildcards but only at the end (10.*, 192.168.1.*). The wildcard is optional; 192.168 is equivalent to 192.168.*.
Malformed input throws exceptions.
| string | $ip |
| countBannedEmails | ( | ) |
Returns the total number of banned email addresses and address snippets
| countBannedIps | ( | ) |
Counts all banned IPs
| countBannedUsers | ( | array | $conditions = array() | ) |
Counts the number of banned users.
| countDiscouragedIps | ( | ) |
Counts all discouraged IPs
| deleteBannedEmails | ( | array | $emails | ) |
Deletes the specified banned emails. Array values should be the "nice" email address values (banned_email column in the DB).
| array | $emails |
| deleteBannedIps | ( | array | $ips | ) |
Deletes the specified banned IPs. Array values should be the "nice" IP address values (banned_ip column in the DB).
| array | $ips |
| deleteDiscouragedIps | ( | array | $ips | ) |
Deletes the specified discouraged IPs. Array values should be the "nice" IP address values (discouraged_ip column in the DB).
| array | $ips |
| deleteExpiredUserBans | ( | $cutOff = null | ) |
Deletes all user ban records that have expired.
| integer | null | $cutOff | Cut-off date. Defaults to now. |
| discourageIp | ( | $ip | ) |
Discourages the specified IP or IP range. Ranges may have wildcards but only at the end (10.*, 192.168.1.*). The wildcard is optional; 192.168 is equivalent to 192.168.*.
Malformed input throws exceptions.
| string | $ip |
| getBannedEmails | ( | ) |
Gets all banned emails.
| getBannedIps | ( | ) |
Gets all banned IPs.
| getBannedUserById | ( | $userId, | |
| array | $fetchOptions = array() |
||
| ) |
Gets the banned user record for the specified user ID.
| integer | $userId | |
| array | $fetchOptions |
| getBannedUsers | ( | array | $conditions = array() , |
| array | $fetchOptions = array() |
||
| ) |
Gets banned users.
| array | $conditions | |
| array | $fetchOptions |
| getDiscouragedIps | ( | ) |
Gets all discouraged IPs.
| getExpiredUserBans | ( | $cutOff = null | ) |
Gets all user ban records that have expired.
| integer | null | $cutOff | Cut-off date. Defaults to now. |
| prepareUserBanConditions | ( | array | $conditions, |
| array & | $fetchOptions | ||
| ) |
Prepares a set of conditions against which to select prefixes.
| array | $conditions | List of conditions. |
| array | $fetchOptions | The fetch options that have been provided. May be edited if criteria requires. |
| rebuildBannedEmailCache | ( | ) |
Rebuilds the cache of banned emails.
| rebuildBannedIpCache | ( | ) |
Rebuilds the cache of banned IPs.
| rebuildDiscouragedIpCache | ( | ) |
Rebuilds the cache of discouraged IPs.


Super Roomba E5 deal: huge $100 off smart robot vacuum ahead of Black Friday
by Becca CaddySuper Roomba E5 deal: huge $100 off smart robot vacuum ahead of Black Friday
Save on iRobot's popular Room E5 robovac
Image Credit: iRobot (Image credit: iRobot)
The Black Friday 2019 deals are already coming in thick and fast. Early deals on some of iRobot's most popular Roomba robovacs see some huge price cuts, including $100 off the iRobot Roomba E5 – one of the most advanced robovacs on the market right now.
Robot vacuum cleaners are a great idea. They take a chore none of us enjoy off our hands and make it easy, automated and fuss-free. The problem is, many of them cost a small fortune.
Which is why this deal on the E5, which slashes the price from $379.99 to $279 is one of our top bargains.
The iRobot Roomba E5 (5150) has a 3-stage cleaning system, which doesn't just get rid of all the dirt, pet hair and dust you can see, but all the tiny dust particles and allergens you can't.
It's full of sensors, which means it can navigate around furniture well for a deep clean, and it for the real tech experience it can be customized and controlled via an app or with Alexa and Google Assistant.
As part of the pre-Black Friday deals, you can get the iRobot Roomba E5 on sale for only $279. That's a great price for one of iRobot's popular Roomba robovacs, which does all the hard work for you with a 3-stage cleaning system to get rid of dust, dirt, pet hair and allergens you can't see.View Deal
TechRadar is scouring every retailer and rounding up all the top deals over the Black Friday period, and we’ve put all the best Black Friday deals and Cyber Monday deals in easy-to-navigate articles to help you find the bargains you’re looking for.
If the iRobot Roomba E5 isn't for you, then click this link to read our guide to the best robot vacuum sales and deals for Black Friday 2019 .


Welcome to OfficeHR!
The world's leading course organisation website.
This website has different features to help you stay in tune with all of your classes:
-
Stay tuned with announcements.
-
Check your professors' office hours. You are not free at that time? Recommend one to your professor.
-
See who uses this website! Click "Users" and see your peers, TAs and professors.
-
We support you for your group work and to get in contact with your peers, TAs and professors. Give it a try with the chat feature!
-
You can use your social media to sign up!
-
Sign up now to join! Let us help you to stay tuned...
- Don't forget to edit your profile!
Have Fun!


What is YuleCalendAR ?
YuleCalendAR is an application that creates an interactive Advent Calender (“Julkalender”) where you in each hatch get a surprise that could be to get a glimpse of a virtual world through a window or even pop out from the wall! The application is run on your smartphone.
The current prototype shows three hatches of different types:
- Window to another world
- Interactive content
- Virtual objects that “pops out” from the tracker
Even if the developed prototype only has three hatches it shows an interesting concept where you can place/choose targets in different locations to encourage people to explore new and interesting locations. As the “Home page” in the application shows.
Technologies
- The application is developed in Unity.
- It makes use of Vuforia image recognition to be able to Augument the Reality seen through you smartphones camera.
Image Targets to be able to demo the application
Hatch 1 - exploring a virtual room
Hatch 2 - The traditional “Gävle Bock”, aim and shoot to see it burn
Hatch 3 - Crush the diamond and look up the chimney
Group Members
Kevin Brundell Whittaker
- 3d modelling, Particle systems and depth mask
Martin Hedlund
- Shaders and particle effects
Mikael Knutsson
- 3d Modelling, image Tracking(Vuforia), particle effects
Joakim Larsson
- Particle system and touch interaction
Calle Sténson
- shaders and particle effects
Emil Westin
- 3d modelling and touch interaction


Master Orkurus:
Are you sure you want to take this test? Very well, then!
Go to Master Tenain in the Town of Giran and assist him -- word has reached us that his mission is in jeopardy. Tell him that I sent you and he will welcome you and give you the details of your task.


|
gtsam
4.0.0
gtsam
|
Kalman Filter class.
Knows how to maintain a Gaussian density under linear-Gaussian motion and measurement models. It uses the square-root information form, as usual in GTSAM.
The filter is functional, in that it does not have state: you call init() to create an initial state, then predict() and update() that create new states out of an old state.
Public Member Functions | |
| KalmanFilter (size_t n, Factorization method=KALMANFILTER_DEFAULT_FACTORIZATION) | |
| State | init (const Vector &x0, const SharedDiagonal &P0) const |
| Create initial state, i.e., prior density at time k=0 In Kalman Filter notation, these are x_{0|0} and P_{0|0}. More... | |
| State | init (const Vector &x0, const Matrix &P0) const |
| version of init with a full covariance matrix | |
| void | print (const std::string &s="") const |
| print | |
| State | predict (const State &p, const Matrix &F, const Matrix &B, const Vector &u, const SharedDiagonal &modelQ) const |
| Predict the state P(x_{t+1}|Z^t) In Kalman Filter notation, this is x_{t+1|t} and P_{t+1|t} Details and parameters: In a linear Kalman Filter, the motion model is f(x_{t}) = F*x_{t} + B*u_{t} + w where F is the state transition model/matrix, B is the control input model, and w is zero-mean, Gaussian white noise with covariance Q. | |
| State | predictQ (const State &p, const Matrix &F, const Matrix &B, const Vector &u, const Matrix &Q) const |
| State | predict2 (const State &p, const Matrix &A0, const Matrix &A1, const Vector &b, const SharedDiagonal &model) const |
| Predict the state P(x_{t+1}|Z^t) In Kalman Filter notation, this is x_{t+1|t} and P_{t+1|t} After the call, that is the density that can be queried. More... | |
| State | update (const State &p, const Matrix &H, const Vector &z, const SharedDiagonal &model) const |
| Update Kalman filter with a measurement For the Kalman Filter, the measurement function, h(x_{t}) = z_{t} will be of the form h(x_{t}) = H*x_{t} + v where H is the observation model/matrix, and v is zero-mean, Gaussian white noise with covariance R. More... | |
| State | updateQ (const State &p, const Matrix &H, const Vector &z, const Matrix &Q) const |
Static Public Member Functions | |
| static Key | step (const State &p) |
| Return step index k, starts at 0, incremented at each predict. More... | |
Public Types | |
| enum | Factorization { QR, CHOLESKY } |
| This Kalman filter is a Square-root Information filter The type below allows you to specify the factorization variant. | |
| typedef GaussianDensity::shared_ptr | State |
| The Kalman filter state is simply a GaussianDensity. | |
| KalmanFilter::State gtsam::KalmanFilter::init | ( | const Vector & | x0, |
| const SharedDiagonal & | P0 | ||
| ) | const |
Create initial state, i.e., prior density at time k=0 In Kalman Filter notation, these are x_{0|0} and P_{0|0}.
| x0 | estimate at time 0 |
| P0 | covariance at time 0, given as a diagonal Gaussian 'model' |
| KalmanFilter::State gtsam::KalmanFilter::predict2 | ( | const State & | p, |
| const Matrix & | A0, | ||
| const Matrix & | A1, | ||
| const Vector & | b, | ||
| const SharedDiagonal & | model | ||
| ) | const |
Predict the state P(x_{t+1}|Z^t) In Kalman Filter notation, this is x_{t+1|t} and P_{t+1|t} After the call, that is the density that can be queried.
Details and parameters: This version of predict takes GaussianFactor motion model [A0 A1 b] with an optional noise model.
Return step index k, starts at 0, incremented at each predict.
| KalmanFilter::State gtsam::KalmanFilter::update | ( | const State & | p, |
| const Matrix & | H, | ||
| const Vector & | z, | ||
| const SharedDiagonal & | model | ||
| ) | const |
Update Kalman filter with a measurement For the Kalman Filter, the measurement function, h(x_{t}) = z_{t} will be of the form h(x_{t}) = H*x_{t} + v where H is the observation model/matrix, and v is zero-mean, Gaussian white noise with covariance R.
In this version, R is restricted to diagonal Gaussians (model parameter)