All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.topologi.diffx.algorithm.Matrix Maven / Gradle / Ivy

Go to download

docx4j is a library which helps you to work with the Office Open XML file format as used in docx documents, pptx presentations, and xlsx spreadsheets.

There is a newer version: 6.1.2
Show newest version
/*
 * This file is part of the DiffX library.
 *
 * For licensing information please see the file license.txt included in the release.
 * A copy of this licence can also be found at
 *   http://www.opensource.org/licenses/artistic-license-2.0.php
 */
package com.topologi.diffx.algorithm;

/**
 * A matrix for the computation of the Diff-X path.
 * 
 * 

This interface is intended to provide methods for initialising and accessing * the values of the matrix regardless of the storage method used. * *

Implementations could use binary matrices, I/O objects, etc... * * @author Christophe Lauret (Allette Systems) * @version 7 April 2005 */ public interface Matrix { // TODO: this class should probably not be public /** * Create a matrix of the given width and height. * * @param width The number of columns. * @param height The number of rows. */ void setup(int width, int height); // default access ----------------------------------------------------------------------- /** * Sets the value of the matrix at the given position. * * @param i The column index. * @param j The row index. * * @param x The value to set. */ void set(int i, int j, int x); /** * Returns the value at the given position. * * @param i The column index. * @param j The row index. * * @return The value at the given position. */ int get(int i, int j); // to fill up the matrix ---------------------------------------------------------------- /** * Increment the path. * *

value(i, j) := value(i+1, j+1) + n * * @param i The column index. * @param j The row index. * @param n The increment number. */ void incrementPathBy(int i, int j, int n); /** * Increment by the maximum path. * *

value(i, j) := max( value(i+1, j) , value(i, j+1) ) * * @param i The column index. * @param j The row index. */ void incrementByMaxPath(int i, int j); // to determine the path ---------------------------------------------------------------- /** * Returns true we should move on the X direction. * *

if value(i+1, j) > value(i, j+1) * * @param i The column index. * @param j The row index. * * @return true to move to i+1; * false otherwise. */ boolean isGreaterX(int i, int j); /** * Returns true we should move on the X direction. * *

if value(i+1, j) < value(i, j+1) * * @param i The column index. * @param j The row index. * * @return true to move to j+1; * false otherwise. */ boolean isGreaterY(int i, int j); /** * Returns true we moving on the X direction is * equivalent to moving on the Y direction. * *

if value(i+1, j) == value(i, j+1) * * @param i The column index. * @param j The row index. * * @return true if it is the same; * false otherwise. */ boolean isSameXY(int i, int j); /** * Releases all the resources used only by this matrix object. * *

This class is not usable, until after invoking this method, unless * it is setup again. */ void release(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy