protected static Ptg calcLarge( Ptg[] operands ) throws CalculationException
	{
		if( operands.length != 2 )
		{
			return new PtgErr( PtgErr.ERROR_VALUE );
		}
		Ptg rng = operands[0];
		Ptg[] array = PtgCalculator.getAllComponents( rng );
		if( array.length == 0 )
		{
			return new PtgErr( PtgErr.ERROR_NUM );
		}
		int k = new Double( PtgCalculator.getDoubleValueArray( operands[1] )[0] ).intValue();
		if( (k <= 0) || (k > array.length) )
		{
			return new PtgErr( PtgErr.ERROR_NUM );
		}

		CompatibleVector sortedValues = new CompatibleVector();
		for( Ptg p : array )
		{
			try
			{
				Double d = new Double( String.valueOf( p.getValue() ) );
				sortedValues.addOrderedDouble( d );
			}
			catch( NumberFormatException e )
			{
			}
			;
		}
		// reverse array
		Double[] dubRefs = new Double[sortedValues.size()];
		for( int i = 0; i < dubRefs.length; i++ )
		{
			dubRefs[i] = (Double) sortedValues.last();
			sortedValues.remove( sortedValues.size() - 1 );
		}

		return new PtgNumber( dubRefs[k - 1] );
/*	 
	 
	 try {
		 Ptg[] parray= PtgCalculator.getAllComponents(operands[0]);
		 Object[] array= new Object[parray.length];
		 for (int i= 0; i < array.length; i++) {
			 array[i]= parray[i].getValue();
			 if (array[i] instanceof Integer) {	// convert all to double if possible for sort below (cannot have mixed array for Arrays.sort)
				 try {	
					 array[i]= new Double(((Integer)array[i]).intValue());
				 } catch (Exception e) {				 
				 }
		 	}
		 }
		 // now sort		 
		 java.util.Arrays.sort(array);
		 int position= (int) PtgCalculator.getLongValue(operands[1]);
		 // now return the nth item in the sorted (asc) array 
		 if (position >=0 && position <=array.length) {
			 Object ret= array[array.length-position];
			 if (ret instanceof Double)
				 return new PtgNumber(((Double)ret).doubleValue());
			 else if (ret instanceof Boolean)
				 return new PtgBool(((Boolean)ret).booleanValue());
			 else if (ret instanceof String)
				 return new PtgStr((String)ret);
		 }
	 } catch (Exception e) {
		 
	 }
	 return new PtgErr(PtgErr.ERROR_NUM);
*/
	}