public double calcAbsRadarTurnDiffRadians(double diffRadians){
        long time = 0;
        double turnRemainingRadians = curTurnRemainingRadians;
        double gunTurnRemainingRadians = curGunTurnRemainingRadians;

        double sumRadarTurnRadians = 0.0;
        
        for (int i = 0 ;i < 100;i++){
            double nextTurnRadians     = 0;
            double nextGunTurnRadians  = 0;
            double nextRadarTurnRadians= 0;
            time++;
            if ( turnRemainingRadians != 0.0 ) {
                nextTurnRadians = Util.turnSpeedRadians(my.velocity)*(Math.abs(turnRemainingRadians)/turnRemainingRadians);
                if ( Math.abs(nextTurnRadians) > Math.abs(turnRemainingRadians) ) {
                    nextTurnRadians = turnRemainingRadians;
                }
                turnRemainingRadians -= nextTurnRadians;
            }

            if ( gunTurnRemainingRadians != 0.0 ) {
                nextGunTurnRadians = Util.gunTurnSpeedRadians()*(Math.abs(gunTurnRemainingRadians)/gunTurnRemainingRadians);
                if ( Math.abs(nextGunTurnRadians) >  Math.abs(gunTurnRemainingRadians) ) {
                    nextGunTurnRadians = gunTurnRemainingRadians;
                }
                gunTurnRemainingRadians -= nextGunTurnRadians;
                nextGunTurnRadians += nextTurnRadians;
            }
//System.out.println(diffDegree + " t:" + nextTurn + " g:" + nextGunTurn);            
            diffRadians -= nextGunTurnRadians;
            if ( diffRadians != 0.0 ) {
                nextRadarTurnRadians = Util.radarTurnSpeedRadians()*(Math.abs(diffRadians)/diffRadians);
                if ( Math.abs(nextRadarTurnRadians) >  Math.abs(diffRadians) ) {
                    nextRadarTurnRadians = diffRadians;
                }
                diffRadians -= nextRadarTurnRadians;
                sumRadarTurnRadians += nextRadarTurnRadians;
            }
            if ( diffRadians == 0.0 ) {
                break;
            }
        }
        return sumRadarTurnRadians;
    }