else if ( ( sc.getType( ) & IConstants.LINEAR ) == IConstants.LINEAR )
else if ( ( sc.getType( ) & DATE_TIME ) == DATE_TIME )
	public static final double getLocation( AutoScale sc, double dValue )			throws IllegalArgumentException	{		if ( ( sc.getType( ) & IConstants.TEXT ) == IConstants.TEXT				|| sc.isCategoryScale( ) )		{			double[] da = sc.getTickCordinates( );			return da[0] + ( da[1] - da[0] ) * dValue;		}		else if ( ( sc.getType( ) & IConstants.LINEAR ) == IConstants.LINEAR )		{			double dMinimum = asDouble( sc.getMinimum( ) ).doubleValue( );			double dStep = asDouble( sc.getStep( ) ).doubleValue( );			double[] da = sc.getTickCordinates( );			return da[0]					- ( ( ( dValue - dMinimum ) / dStep ) * ( da[0] - da[1] ) );		}		else if ( ( sc.getType( ) & IConstants.LOGARITHMIC ) == IConstants.LOGARITHMIC )		{			if ( dValue == 0 ) // CANNOT GO TO '0'			{				return sc.getStart( );			}			if ( dValue < 0 )			{				throw new IllegalArgumentException( MessageFormat.format( ResourceBundle.getBundle( Messages.ENGINE,						sc.getRunTimeContext( ).getLocale( ) )						.getString( "exception.zero.negative.logarithmic.scale" ), //$NON-NLS-1$						new Object[]{							sc						} )				);			}			double dMinimumLog = Math.log( asDouble( sc.getMinimum( ) ).doubleValue( ) )					/ LOG_10;			double dStepLog = Math.log( asDouble( sc.getStep( ) ).doubleValue( ) )					/ LOG_10;			double dValueLog = Math.log( dValue ) / LOG_10;			double[] da = sc.getTickCordinates( );			return da[0]					- ( ( ( dValueLog - dMinimumLog ) / dStepLog ) * ( da[0] - da[1] ) );		}		return 0;	}