Eclipse муравей PDT

Дэвид Эйзенстат заставил меня задуматься.
Я хочу, чтобы простые случаи были быстрыми: пусть об этом позаботится double. Ньютон-Рафсон может быть лучшим выбором для отдыха.

 /** Multiplies both factors
  *  and divides by divisor.
  * @return Long.MIN_VALUE if result out of range,
* else factorA * factor1 / divisor */ public static long mulDiv(long factorA, long factor1, long divisor) { final double dd = divisor, product = (double)factorA * factor1, a1_d = product / dd; if (a1_d < -TOO_LARGE || TOO_LARGE < a1_d) return tooLarge(); if (-ONE_ < a1_d && a1_d < ONE_) return 0; if (-EXACT < product && product < EXACT) return (long) a1_d; long pLo = factorA * factor1, //diff, pHi = high64(factorA, factor1); if (a1_d < -LONG_MAX_ || LONG_MAX_ < a1_d) { long maxdHi = divisor >> 1; if (maxdHi < pHi || maxdHi == pHi && Long.compareUnsigned((divisor << Long.SIZE-1), pLo) <= 0) return tooLarge(); } final double high_dd = TWO_POWER64/dd; long quotient = (long) a1_d, loPP = quotient * divisor, hiPP = high64(quotient, divisor); long remHi = pHi - hiPP, // xxx overflow/carry remLo = pLo - loPP; if (Long.compareUnsigned(pLo, remLo) < 0) remHi -= 1; double fudge = remHi * high_dd; if (remLo < 0) fudge += high_dd; fudge += remLo/dd; long //fHi = (long)fudge/TWO_POWER64, fLo = (long) Math.floor(fudge); //*round quotient += fLo; loPP = quotient * divisor; hiPP = high64(quotient, divisor); remHi = pHi - hiPP; // should be 0?! remLo = pLo - loPP; if (Long.compareUnsigned(pLo, remLo) < 0) remHi -= 1; if (0 == remHi && 0 <= remLo && remLo < divisor) return quotient; fudge = remHi * high_dd; if (remLo < 0) fudge += high_dd; fudge += remLo/dd; fLo = (long) Math.floor(fudge); return quotient + fLo; } /** max double trusted to represent * a value in the range of long */ static final double LONG_MAX_ = Double.valueOf(Long.MAX_VALUE - 0xFFF); /** max double trusted to represent a value below 1 */ static final double ONE_ = Double.longBitsToDouble( Double.doubleToRawLongBits(1) - 4); /** max double trusted to represent a value exactly */ static final double EXACT = Long.MAX_VALUE >> 12; static final double TWO_POWER64 = Double.valueOf(1L<<32)*Double.valueOf(1L<<32); static long tooLarge() { // throw new RuntimeException("result too large for long"); return Long.MIN_VALUE; } static final long ONES_32 = ~(~0L << 32); static long high64(long factorA, long factor1) { long loA = factorA & ONES_32, hiA = factorA >>> 32, lo1 = factor1 & ONES_32, hi1 = factor1 >>> 32; return ((loA * lo1 >>> 32) +loA * hi1 + hiA * lo1 >>> 32) + hiA * hi1; }

(Я переставил этот код из IDE так, чтобы на нем было mulDiv(). Будучи ленивым, у меня есть оболочка для обработки знаков - возможно, попробую сделать это правильно, пока ад не замерзнет.
[ 116] Для синхронизации крайне необходима модель ввода:
Как насчет , чтобы каждый возможный результат был одинаково вероятным ?)

13
задан Brian Fisher 6 January 2009 в 15:59
поделиться

5 ответов

Таким образом, я нашел ответ на свой собственный вопрос. Необходимо установить Средства разработки Java Eclipse. Они могут быть найдены при Ganymede> Разработка Java> Средства разработки Java Eclipse в Справке> Обновления программного обеспечения> Доступное программное обеспечение.

6
ответ дан 1 December 2019 в 22:24
поделиться

Не совсем уверенный, что Вы ищете, но здесь являетесь списком плагинов Муравья Eclipse:

http://www.eclipse.org/eclipse/ant/index.php

0
ответ дан 1 December 2019 в 22:24
поделиться

Спасибо, у меня просто была та же проблема, и как Вы сказали, Средства разработки Java содержали Муравья.

После того как Вы будите Муравья и выполнение, можно столкнуться со связанной проблемой - это предупреждение во всех файлах Муравья:

Никакие ограничения грамматики (DTD или XML-схема) обнаруженный для документа.

Детали находятся в этом вопросе о Переполнении стека, но короткий ответ, который я использовал, должен был добавить этот минимальный DTD к моим файлам типа "build":

<!DOCTYPE project>
0
ответ дан 1 December 2019 в 22:24
поделиться

Похоже, должен быть лучший вариант. Ant - это автономный инструмент. Вам не нужно загружать все инструменты Java только для того, чтобы получить Ant.

0
ответ дан 1 December 2019 в 22:24
поделиться

This drove me crazy a couple days ago. In Galileo the update process is slightly different, which is bad forward design if you ask me (but I digress). Here's how you do it in Eclipse 3.5.

Help > Install New Software

From "Work with:" dropdown choose "Galileo - http://download.eclipse.org/releases/galileo"

Then expand "Programming Languages" and choose "Eclipse Java Development Tools".

You could install a different plugin, but this is the standard Eclipse Install.

16
ответ дан 1 December 2019 в 22:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: