⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 doublevector.java

📁 wekaUT是 university texas austin 开发的基于weka的半指导学习(semi supervised learning)的分类器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
  /** Returns ||u-v||^2   *  @param v the second vector   */  public double sum2( DoubleVector v )   {    return minus( v ).sum2();  }    /** Returns a subvector.   *  @param i0   the index of the first element   *  @param i1   the index of the last element   *  @return     v[i0:i1]   */  public DoubleVector  subvector( int i0, int i1 )   {    DoubleVector v = new DoubleVector( i1-i0+1 );    v.set(0, i1 - i0, this, i0);    return v;  }    /** Returns a subvector.   *  @param index stores the indices of the needed elements   *  @return     v[index]   */  public DoubleVector  subvector( IntVector index ) {    DoubleVector v = new DoubleVector( index.size() );    for( int i = 0; i < index.size(); i++ )      v.V[i] = V[index.V[i]];    return v;  }  /** Returns a vector from the pivoting indices. Elements not indexed are   *  set to zero.   *  @param index stores the pivoting indices   *  @param length the total number of the potential elements   *  @return the subvector */  public DoubleVector  unpivoting( IntVector index, int length ) {    if( index.size() > length )       throw new IllegalArgumentException("index.size() > length ");    DoubleVector u = new DoubleVector( length );    for( int i = 0; i < index.size(); i++ ) {      u.V[index.V[i]] =  V[i];    }    return u;  }    /** Adds a value to all the elements    *  @param x the value   */  public DoubleVector  plus ( double x ) {    return copy().plusEquals( x );	  }    /** Adds a value to all the elements in place   *  @param x the value   */  public DoubleVector plusEquals ( double x ) {    for( int i = 0; i < size(); i++ )      V[i] += x;    return this;  }    /**    *  Adds another vector element by element    *  @param v the second vector   */  public DoubleVector  plus( DoubleVector v ) {    return copy().plusEquals( v );  }    /**    *  Adds another vector in place element by element    *  @param v the second vector   */  public DoubleVector  plusEquals( DoubleVector v ) {    for(int i = 0; i < size(); i++ )      V[i] += v.V[i];    return this;  }    /**    *  Subtracts a value   *  @param x the value   */  public DoubleVector  minus( double x ) {    return plus( -x );  }    /**    *  Subtracts a value in place   *  @param x the value   */  public DoubleVector  minusEquals( double x ) {    plusEquals( -x );    return this;  }    /**    *  Subtracts another DoubleVector element by element    *  @param v the second DoubleVector   */  public DoubleVector  minus( DoubleVector v ) {    return copy().minusEquals( v );  }    /**    *  Subtracts another DoubleVector element by element in place   *  @param v the second DoubleVector   */  public DoubleVector  minusEquals( DoubleVector v ) {    for(int i = 0; i < size(); i++ )      V[i] -=  v.V[i];    return this;  }      /** Multiplies a scalar      @param s    scalar      @return     s * v  */  public DoubleVector  times( double s ) {    return copy().timesEquals( s );  }      /** Multiply a vector by a scalar in place, u = s * u      @param s    scalar      @return     replace u by s * u  */  public DoubleVector  timesEquals( double s ) {    for (int i = 0; i < size(); i++) {      V[i] *= s;    }    return this;  }      /**    *  Multiplies another DoubleVector element by element   *  @param v the second DoubleVector   */  public DoubleVector  times( DoubleVector v ) {    return copy().timesEquals( v );       }      /**    *  Multiplies another DoubleVector element by element in place    *  @param v the second DoubleVector   */  public DoubleVector  timesEquals( DoubleVector v ) {    for(int i = 0; i < size(); i++ )      V[i] *= v.V[i];    return this;  }    /**    *  Divided by another DoubleVector element by element   *  @param v the second DoubleVector   */  public DoubleVector  dividedBy ( DoubleVector v ) {    return copy().dividedByEquals( v );  }    /**    *  Divided by another DoubleVector element by element in place    *  @param v the second DoubleVector   */  public DoubleVector  dividedByEquals ( DoubleVector v ) {    for( int i = 0; i < size(); i++ ) {      V[i] /= v.V[i];    }    return this;  }    /**    *  Checks if it is an empty vector   */  public boolean  isEmpty() {    if( size() == 0 ) return true;    return false;  }    /**    * Returns a vector that stores the cumulated values of the original   * vector */  public DoubleVector cumulate()   {    return copy().cumulateInPlace();  }	  /**    * Cumulates the original vector in place    */  public DoubleVector cumulateInPlace()   {    for (int i = 1; i < size(); i++) {      V[i] += V[i-1];    }    return this;  }	  /**    * Returns the index of the maximum. <p>   * If multiple maximums exist, the index of the first is returned.   */  public int  indexOfMax()  {    int index = 0;    double ma = V[0];    for( int i = 1; i < size(); i++ ){      if( ma < V[i] ) {	ma = V[i];	index = i;      }    }    return index;  }    /**    * Returns true if vector not sorted   */  public boolean unsorted () {    if( size() < 2 ) return false;    for( int i = 1; i < size(); i++ ) {      if( V[i-1] > V[i] )	return true;    }    return false;  }    /**   *  Combine two vectors together   *  @param v the second vector   */  public DoubleVector  cat( DoubleVector v ) {    DoubleVector w = new DoubleVector( size() + v.size() );    w.set(0, size() - 1, this, 0);    w.set(size(), size() + v.size()-1, v, 0);    return w;  }      /**   *  Swaps the values stored at i and j   *  @param i the index i   *  @param j the index j   */  public void  swap( int i, int j ){    if( i == j ) return;    double t = V[i];    V[i] = V[j];    V[j] = t;  }  /**   *  Returns the maximum value of all elements   */  public double max () {    if( size() < 1 ) throw new IllegalArgumentException("zero size");    double ma = V[0];    if( size() < 2 ) return ma;    for( int i = 1; i < size(); i++ ) {      if( V[i] > ma ) ma = V[i];    }    return ma;  }    /**   *  Applies a method to the vector   *  @param className the class name   *  @param method the method   */  public DoubleVector map( String className, String method ) {    try {      Class c = Class.forName( className );      Class [] cs = new Class[1];       cs[ 0 ] = Double.TYPE;      Method m = c.getMethod( method, cs );            DoubleVector w = new DoubleVector( size() );      Object [] obj = new Object[1];      for( int i = 0; i < size(); i++ ) {	obj[0] = new Double( V[i] );	w.set( i, Double.parseDouble(m.invoke( null, obj ).toString()) );       }      return w;    }    catch ( Exception e ) {      e.printStackTrace();      System.exit(1);    }    return null;  }  /**   * Returns the reverse vector   */   public DoubleVector  rev() {    int n = size();    DoubleVector w = new DoubleVector( n );    for(int i = 0; i < n; i++ )      w.V[i] = V[n-i-1];    return w;  }    /**   * Returns a random vector of uniform distribution   * @param n the size of the vector   */   public static DoubleVector  random( int n ) {    DoubleVector v = new DoubleVector( n );    for (int i = 0; i < n; i++) {      v.V[i] = Math.random();    }    return v;  }  /** Convert the DoubleVecor to a string   */   public String  toString() {    return toString( 5, false );  }      /** Convert the DoubleVecor to a string   *  @param digits the number of digits after decimal point   *  @param trailing true if trailing zeros are to be shown   */   public String  toString( int digits, boolean trailing ) {    if( isEmpty() ) return "null vector";    StringBuffer text = new StringBuffer();    FlexibleDecimalFormat nf = new FlexibleDecimalFormat( digits, 							  trailing );    nf.grouping( true );    for( int i = 0; i < size(); i ++ ) nf.update( V[i] );    int count = 0;    int width = 80;    String number;    for( int i = 0; i < size(); i++ ) {      number = nf.format(V[i]);      count += 1 + number.length();      if( count > width-1 ) { 	text.append('\n'); 	count = 1 + number.length();      }      text.append( " " + number );    }	    return text.toString();  }  public static void  main( String args[] ) {        DoubleVector u = random(10);    DoubleVector v = random(10);    DoubleVector a = random(10);    DoubleVector w = a;     System.out.println( random(10).plus(v).plus(w) );  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -