Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #3867

Re: boolean to int : was char to decimal

From Michael Wojcik <mwojcik@newsguy.com>
Newsgroups comp.lang.java.programmer
Subject Re: boolean to int : was char to decimal
Date 2011-05-09 12:51 -0400
Organization Micro Focus
Message-ID <iq996f01ge7@news2.newsguy.com> (permalink)
References <92ea64F3avU1@mid.individual.net> <Xns9EDBB8224D5B6vaj4088ianshef@138.125.254.103> <iptlkq$62g$2@lust.ihug.co.nz> <iq0r9c$efs$1@dont-email.me> <iq1asr$tps$1@dont-email.me>

Show all headers | View raw


Jeff Higgins wrote:
> Yes, the nested if/else seems more clear in the above short example.

And that shows why context is often important in a question of coding
style. Your short example contained nothing that could justify the odd
use of the switch statement. (And your Java version made even less
sense, since it lost the C++ boolean-int conversions and symmetry.)

> Now I wonder about the original author's motivation for
> the use of switch statement. Code clarity, optimization, idiomatics?

It looks to me like the C++ code may have been based on a C
implementation of the algorithm, which would have been a bit simpler,
since the int casts would have been unnecessary:

   switch (((d2 > curve_collinearity_epsilon) << 1) +
            (d3 > curve_collinearity_epsilon)) {

I would have preferred binary-or there rather than addition, for
clarity, but either works.

And that, in turn, may have come from a description of the algorithm
that treated the two tests for inner-point collinearity as a pair of
bits (which is what this code is doing). Or it may have originally
been implemented on a processor where {test, test, shift, add,
computed-goto} was a faster sequence than {test, branch, test,
branch}. Bezier-curve rendering is a plausible target for optimization.

Or it may just be idiosyncrasy, particularly since this is a directly
recursive implementation, which seems likely to dwarf any savings from
fooling with the collinearity tests.

It's unlikely a Java implementation will benefit detectably from
anything other than the straightforward cascading-if-else design.
Certainly that would be the one to start with, and only investigate
alternatives if performance is a problem and profiling indicates this
is a useful target for optimization.

-- 
Michael Wojcik
Micro Focus
Rhetoric & Writing, Michigan State University

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

char to decimal Dirk Bruere at NeoPax <dirk.bruere@gmail.com> - 2011-05-05 01:43 +0100
  Re: char to decimal Knute Johnson <nospam@rabbitbrush.frazmtn.com> - 2011-05-04 17:49 -0700
  Re: char to decimal Ian Shef <invalid@avoiding.spam> - 2011-05-05 01:06 +0000
    Re: char to decimal Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-05 20:03 +1200
      Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-05 07:03 -0400
        Re: char to decimal Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-05-05 11:18 +0000
          Re: char to decimal Patricia Shanahan <pats@acm.org> - 2011-05-05 06:11 -0700
            Re: char to decimal Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-06 01:59 +1200
              Re: char to decimal Mayeul <mayeul.marguet@free.fr> - 2011-05-05 16:53 +0200
                Re: char to decimal Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-06 11:49 +1200
                Re: char to decimal Mayeul <mayeul.marguet@free.fr> - 2011-05-06 08:46 +0200
                Re: char to decimal Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-06 18:43 +1200
                Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-06 06:52 -0400
                Re: char to decimal Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-05-06 11:39 +0000
              Re: char to decimal Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-05-05 14:13 -0400
                Re: char to decimal Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-06 11:49 +1200
                Re: char to decimal Mayeul <mayeul.marguet@free.fr> - 2011-05-06 08:47 +0200
                Re: char to decimal Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-06 18:43 +1200
                Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-06 06:54 -0400
                Re: char to decimal Jussi Piitulainen <jpiitula@ling.helsinki.fi> - 2011-05-06 10:30 +0300
              Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-05 17:05 -0400
            Re: char to decimal Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-05-05 14:56 +0000
              Re: char to decimal Paul Cager <paul.cager@googlemail.com> - 2011-05-05 11:48 -0700
                Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-05 17:06 -0400
                Re: char to decimal Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-05-05 21:28 +0000
                Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-05 17:32 -0400
                Re: char to decimal Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-05-06 08:31 +0000
          Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-05 17:04 -0400
      boolean to int : was char to decimal Jeff Higgins <jeff@invalid.invalid> - 2011-05-06 09:00 -0400
        Re: boolean to int : was char to decimal Patricia Shanahan <pats@acm.org> - 2011-05-06 06:54 -0700
        Re: boolean to int : was char to decimal markspace <-@.> - 2011-05-06 07:07 -0700
          Re: boolean to int : was char to decimal markspace <-@.> - 2011-05-06 08:30 -0700
        Re: boolean to int : was char to decimal Nigel Wade <nmw-news@ion.le.ac.uk> - 2011-05-06 15:35 +0100
        Re: boolean to int : was char to decimal Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-05-06 19:12 +0200
        Re: boolean to int : was char to decimal Jeff Higgins <jeff@invalid.invalid> - 2011-05-06 13:26 -0400
          Re: boolean to int : was char to decimal Jeff Higgins <jeff@invalid.invalid> - 2011-05-06 21:25 -0400
          Re: boolean to int : was char to decimal Jeff Higgins <jeff@invalid.invalid> - 2011-05-06 21:28 -0400
          Re: boolean to int : was char to decimal Michael Wojcik <mwojcik@newsguy.com> - 2011-05-09 12:51 -0400
            Re: boolean to int : was char to decimal Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-05-09 23:54 +0000
            Re: boolean to int : was char to decimal Jeff Higgins <jeff@invalid.invalid> - 2011-05-09 20:51 -0400
              Re: boolean to int : was char to decimal Michael Wojcik <mwojcik@newsguy.com> - 2011-05-10 11:20 -0400
            Re: boolean to int : was char to decimal Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-10 13:47 +1200
              Re: boolean to int : was char to decimal Michael Wojcik <mwojcik@newsguy.com> - 2011-05-10 11:02 -0400
                Re: boolean to int : was char to decimal Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> - 2011-05-11 14:05 +1200
                Re: boolean to int : was char to decimal Jeff Higgins <jeff@invalid.invalid> - 2011-05-11 08:11 -0400
  Re: char to decimal Dirk Bruere at NeoPax <dirk.bruere@gmail.com> - 2011-05-05 02:12 +0100
  Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-04 21:59 -0400
    Re: char to decimal Dirk Bruere at NeoPax <dirk.bruere@gmail.com> - 2011-05-05 16:14 +0100
      Re: char to decimal markspace <-@.> - 2011-05-05 11:20 -0700
        Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-05 17:10 -0400
          Re: char to decimal Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-05-05 22:00 +0000
            Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-05 18:20 -0400
          Re: char to decimal Dirk Bruere at NeoPax <dirk.bruere@gmail.com> - 2011-05-06 10:45 +0100
            Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-06 06:56 -0400
              Re: char to decimal Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-05-06 11:48 +0000
                Re: char to decimal Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-05-06 08:38 -0400
                Re: char to decimal Michael Wojcik <mwojcik@newsguy.com> - 2011-05-06 09:47 -0400
                Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-06 12:02 -0400
                Re: char to decimal Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-05-06 19:15 +0200
                Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-06 14:01 -0400
                Re: char to decimal Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-05-06 20:07 +0200
                Re: O/T linguistics (Was: char to decimal) Lew <noone@lewscanon.com> - 2011-05-06 15:28 -0400
                Re: O/T linguistics Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-05-06 21:44 +0200
                Re: char to decimal Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-05-06 23:57 +0000
                Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-06 12:00 -0400
              Re: char to decimal Dirk Bruere at NeoPax <dirk.bruere@gmail.com> - 2011-05-06 18:29 +0100
                Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-06 14:02 -0400
                Re: char to decimal Dirk Bruere at NeoPax <dirk.bruere@gmail.com> - 2011-05-07 01:09 +0100
                Re: char to decimal Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-05-07 00:18 +0000
                Re: char to decimal Lew <noone@lewscanon.com> - 2011-05-06 21:30 -0400
  Re: char to decimal Roedy Green <see_website@mindprod.com.invalid> - 2011-05-04 22:03 -0700
    Re: char to decimal "Nasser M. Abbasi" <nma@12000.org> - 2011-05-05 01:14 -0700
    Re: char to decimal Dirk Bruere at NeoPax <dirk.bruere@gmail.com> - 2011-05-05 16:15 +0100

csiph-web