[comp.lang.c] Numerical C Extensions Group

rex@aussie.UUCP (Rex Jaeschke) (04/04/89)

Recently, I formed a Numerical C Extensions Group (NCEG) to add extra 
support to the C language and library for numerical applications. 
Quite a few of the major players in this area have agreed to attend 
the first meeting to be hosted by Cray Research on May 10-11.  I
would appreciate any feedback on the proposal below. Thanks. This 
proposal was mailed to all ANSI/ISO C Standard members, about 10 days 
ago.

Rex Jaeschke

%---------------------------------------------------------------


                 Numerical C Extensions Group Formation
		----------------------------------------

Introduction
============

As some of you know, for some time I have had an interest in
standardizing extensions outside of X3J11.  Thus far, my role has
been to convene an extensions meeting one evening during each X3J11
meeting week.  And while each extensions meeting was well attended,
only the two or three regular presenters really participated.

In September, we at X3J11 decided we had done the best job we could
and voted to forward the standard to X3 for final approval.  And
although that has not yet happened, all indications are that it will
without further committee deliberation.  As a result, the X3J11
meetings will be held less regularly and for shorter periods.  That
coupled with the fact that many (most?) of the regular X3J11
attendees have little or no interest in the numerical marketplace at
this time, makes X3J11 an inappropriate forum for efforts to
standardize extensions, at least in the numerical direction.

Certainly, any effort to standardize extensions must be done with
X3J11's stated goal and future directions in mind.  One of the
principle reasons complex and the like are not in the first version
of the standard is the lack of prior art and in some cases, the lack
of consistent prior art.  Only once an extensions group can form
consensus within their own ranks can they reasonably expect a formal
standards body to consider adopting their extensions.

The First Step
==============

As a result of my involvement in X3J11, my writing and teaching
interests, and of my starting The Journal of C Language Translation,
I have formed an extensions group.  The name of that group is ``The
Numerical C Extensions Group'' (NCEG) and its broad purpose will be
to standardize extensions to the preprocessor, language and/or
library as appropriate to sell to and/or satisfy the increasing
interest in C being shown by the numerical community.

Who am I to start such a group?

  -- What I lack in implementation details I make up for in
enthusiasm.  Besides, there are plenty of competent people out there
who can provide the technical details.

  -- I have no commercial interest in the outcome of such extensions and
can therefore, provide some unbiased leadership.

  -- If others are really interested in making it work I have the time
and resources to commit.

  -- I offer the services of The Journal for ongoing publicity of
the groups' decisions and activities.  At the very least, Tom MacDonald of
Cray Research (and The Journal's Numerical Editor) will provide
regular coverage.

  -- If I don't start something will you? (I don't mind sharing the
``glory'' and the work.)

Getting Together
================

We are already at the point where more than a few companies are
interested in the idea of NCEG.  However, unless something formal
happens soon their interest will wane and they will ``do their own
thing'' anyway, or at best, sound off a few ideas with others via
e-mail.

Cray Research has agreed to host an inaugural NCEG meeting at their
Mendota Heights facility in suburban Minneapolis, Minnesota on May
10--11.  That gives you time enough to decide on your level of
participation, if any.  The meeting needs to take place before the
summer break when many of you may be vacationing, plus one or more of
the participating vendors may well be shipping product containing
numerical extensions by the end of the year.  The longer we leave it
to get started the harder the task will be.

Inaugural Meeting Format
========================

I propose a 1 1/2 day format for the following reasons:

  -- It will take quite some time to address administrative issues before
even looking at technical solutions.

  -- Staying overnight gives attendees a chance to get together over
dinner and discuss ideas.  I find that sleeping on decisions made the
previous day can often result in changes and improvements.

  -- Finishing by lunch the second day gives everyone time to catch a
flight out that afternoon.

A reasonable format would be to break the day into four formal
periods, two each in the morning and afternoon.  Have a two hour
lunch to get informal discussions going and to have people meet each
other.

Wed:    9:00  --  10:30   session 1	
       10:45  --  12:15   session 2	
       12:15  --   2:15     LUNCH	
        2:15  --   3:45   session 3	
        4:00  --   5:30   session 4	
                        			
Thu:    9:00  --  10:30   session 1	
       10:45  --  12:15   session 2	

Meeting Agenda
==============

It is clear to me that the thing we don't want to do immediately on
the first day, is to start producing technical specifications.  In
fact, if all we achieve in both days is a consensus of what the
issues really are, and in which corners each company stands, we will
have been wildly successful.

I believe a reasonable plan of attack is to:

  -- Identify any existing prior hardware and software art.

  -- Identify existing and pending formal and de facto standards and
establish a liaison with them.  (X/OPEN, OSF, POSIX, X3J11, GKS, and ISO
immediately come to mind.  Maybe even Fortran 8X.)

  -- Identify and prioritize the technical issues into the following
categories:

      :-- Must have now or as soon as possible.

      :-- Can live without for the time being but eventually need/would like.

      :-- Wishful thinking; ``Gee, wouldn't that be nice stuff''.

  -- Recognize, accept and rationally deal with the problems created when
competing vendors and conflicting commercial interests arise.

  -- Identify, as soon as possible, those areas that such a group cannot,
or chooses not to, standardize.

Meeting Rules
=============

Although I was not involved with X3J11 at the very beginning, I have
attended all but about seven meetings.  (X3J11 votes by majority
rules.) I have also attended three ISO C meetings where voting is by
consensus.  As a result, I propose that we remain as informal as
possible.  In particular, given the specific nature of the task, the
small number of participants and the potential commercial conflicting
interests, I propose working by consensus rather than simple or two
thirds majority vote.  It makes no sense for the group as a whole, to
have one or two vendors be quite opposed to some idea and go do it
their own way anyhow.  If such situations cannot be resolved fairly
quickly, those issues may have to go into the ``unspecified'' or
``implementation-defined'' bin.

Unless someone else wants to arm wrestle me for the role of
convener/chair I am happy to serve in that capacity.  Apart from that
we would need a secretary---perhaps a different person each meeting
so the workload can be spread around.

Beyond the First Meeting
========================

I would expect that by the end of the first meeting we will have
identified most of the ``Must have now or soon'' goals and that we
will each have volunteered to be the focal point for, or to actively
participate in, one or more interest groups.

We will also have exchanged e-mail and postal addresses and phone
numbers so that the ``real'' work can get under way.

It would probably be useful to identify a date and host for the
following meeting.  Of course, meeting frequency can be determined as
necessary and probably no more than two or three times per year. 
Once we get organized it would be desirable to schedule them along
with X3J11 meetings.

Also, we would need a volunteer to do a mailing of minutes, etc., to
all companies we have ``registered'' as intending to participate. 
Meeting attendance must not be necessary for NCEG participation and
so there needs to be a way for proposals, etc., to be circulated in
paper form.

Committee Status
================

As stated earlier, initially NCEG would have no official status. 
However, it is expected that most, if not all, member companies would
also be X3J11 members.  If a useful numeric extensions package can be
agreed upon, it certainly should be submitted to X3J11 and POSIX for
their consideration, however.

Regarding the adoption by a formal standards group---it is quite
possible that even if we don't violate X3J11, they may not adopt any
or all of our proposals simply because the general membership won't
want to be forced to implement things their customer base don't need. 
The only way this might work is if future versions of the standard
are defined as ``Base plus optional packages'' as other language
standards are.

While we certainly don't want to go against established practice, I
see the main role of NCEG as defining a de facto standard.  If we all
agree on the details, our efforts must be successful, by definition. 
Then, if we have done our homework thoroughly, we'll also have the
official (or, perhaps, unofficial) backing of one or more standards
groups.

What Can You Do?
================

  -- Let Tom MacDonald or I know as soon as you can if you are interested
in NCEG.  This is for your benefit as much as ours so we won't come
chasing after you.  If less than 8--10 companies commit to attending the
first meeting THAT MEETING WILL LIKELY NOT BE HELD.

  -- Give me constructive feedback on this whole proposal, even if you
don't intend to participate in the group now or at all.

  -- If you want to participate, identify the people in your organization
who will likely attend and/or provide input.  Even if you cannot attend
the meeting, make your submissions anyway so that I can make sure they get
a hearing.

  -- Identify your company's numerical needs and categorize them into the
three groups named earlier.  Make sure you have a good idea about which
things you are prepared to ``go to the wall on'' and which you are not. 
(Nothing useful will likely result without compromise.)

  -- Offer to become the focal point for a particular topic.  (I'm sure
Tom MacDonald would LOVE to handle complex since that's his top
priority.)

  -- Tell anyone who might be remotely interested in what I am proposing.

Technical Issues
================

I have identified the following possible issues.  (I'm sure there are
many more.) They are in no particular order.

  -- complex

  -- IEEE issues including infinity and not-a-number handling

  -- float.h

  -- need for something like {__NCE__} predefined conformance macro

  -- validation suite

  -- matherr and errno

  -- vector/parallel processing (including array syntax)

  -- aliasing

  -- variably dimensioned arrays

  -- Fortran interface

  -- issues with existing math library

  -- numeric applications libraries

What Happens Next?
==================

I announced the group's existence in the free sample issue of The
Journal which was mailed in Mid-March.  (About 1500 copies were
distributed world-wide.)

We'll schedule the meeting and if your level of commitment is
reasonable, we'll hold it; if it is not, we'll cancel it.  And
depending on our understanding of the problem we'll either reschedule
it or drop the whole idea.

If you want to discuss this proposal or related issues, contact Tom
MacDonald or myself as follows:

Rex Jaeschke, The Journal of C Language Translation, 1810 Michael
Faraday Drive, Suite 101, Reston, VA 22090, (703) 860-0091,
uunet!aussie!jct.

Tom MacDonald, Cray Research, Inc., 1345 Northland Drive, Mendota
Heights, MN 55120, (612) 681-5818, tam@cray.com, uunet!cray!hall!tam.

Hotel and Meeting Details
=========================

The meeting will be held at Cray's facility located at:

Cray Research
1345 Northland Drive
Mendota Heights, MN 55120

If you wish to provide handouts of technical submissions, etc.,
please bring 30--40 copies since on-site duplication facilities will
be limited.  (At the time of writing, the number of people who have
indicated their interest in attending is at least 15--20.)

Accommodation is available within walking distance at:

Mariott Courtyard
1352 Northland Drive
Mendota Heights, MN 55120
(800) 321-2211
(612) 452-2000

Their standard room rate is $62 per night.  You may get a corporate
rate if you ask.  A block of rooms has NOT been reserved; each of you
must take care of your own reservations.

The hotel has an indoor pool, whirlpool and small exercise room, and
a reasonable restaurant.  Airport limo service is available on demand
from 6:30 AM till 11PM, free of charge.  (The hotel is only 10--15
minutes from the airport.)

If you rent a car at the airport, take 494E to the Pilot Knob exit. 
You can see the hotel from the freeway and you make your way to the
local service road to get to it.

Mendota Heights is about 15 minutes from downtown St.  Paul and 25
minutes from downtown Minneapolis.

Please advise either Tom or I if you plan to attend the meeting so we
can arrange for an appropriate size room and refreshments.

%---------------------------------------------------------------------

Rex

----------------------------------------------------------------------------
Rex Jaeschke     | C Users Journal     |  Journal of C Language Translation
(703) 860-0091   | DEC PROFESSIONAL    |1810 Michael Faraday Drive, Suite 101
uunet!aussie!rex | Programmers Journal |     Reston, Virginia 22090, USA
----------------------------------------------------------------------------

jima@hplsla.HP.COM (Jim Adcock) (04/06/89)

Again, people who are interested in doing serious
numerical processing in C, ought to look into
C++.  Not that C++ is not without its shortcomings,
but it certainly is my first choice when I need
to do serious numerical programming.

rex@aussie.UUCP (Rex Jaeschke) (06/30/89)

Several weeks ago I posted a report on the first meeting of NCEG. And 
whileI listed the main topics we discussed I did not have the names 
and contact information for the subgroup leaders. Here they are.


At the Minnesota meeting, we identified the `hot' topics and formed
subgroups for each of them.  Each subgroup has a primary (and for
some a secondary) leader who is coordinating that group's activities. 
The intent is that anyone interested in one of these topics keep in
touch with the leader(s) and that only the distillations of these
groups actually be included in the formal mailings.  That way we can
keep the size of the mailings down and we can better focus on the
`real' issues at our very short and infrequent meetings.  So only
send me documents for mailings if you are doing so on behalf of a
subgroup or there is no subgroup for your particular topic.

The subgroups established in May, and their leaders, are as follows:

----------------------------------------------------------------------
                   NCEG Subgroups and Leaders
----------------------------------------------------------------------
       Topic		      Primary		  Secondary
----------------------------------------------------------------------
aliasing		 Bill Homer	
variable dim arrays	 Dennis Ritchie	 	Tom MacDonald
array syntax		 Frank Farance	 	Tom MacDonald
parallelization		 Austin Curley	 	Frank Farance
complex			 Tom MacDonald	 	Bob Allison
IEEE issues		 Jim Thomas	 	David Hough
exceptions		 David Hough	 	Jim Thomas
new math functions	 Frank Farance	
ANSI math.h issues	 Walter Murray
----------------------------------------------------------------------

They may be contacted as follows:

----------------------------------------------------------------------
               How to Contact Subgroup Leaders
----------------------------------------------------------------------
  Person	        e-mail		    telephone
----------------------------------------------------------------------
Bob Allison	 uunet!microsoft!bobal	 (206) 882-8413
Austin Curley	 curley@convex.com	 (214) 497-4529
Frank Farance	 decvax!farance!frank	 (212) 486-4700
Bill Homer	 homer@cray.com	 	 (612) 681-5606
David Hough	 dgh@sun.com		 (415) 336-7702
Tom MacDonald	 tam@cray.comx		 (612) 681-5818
Walter Murray	 walter@hpda.HP.COM	 (408) 447-6129
Dennis Ritchie	 dmr@research.att.com	 (201) 582-3770
Jim Thomas	 uunet!apple.com!jimt	 (408) 974-3266
----------------------------------------------------------------------

Rex

----------------------------------------------------------------------------
Rex Jaeschke     | C Users Journal     |  Journal of C Language Translation
(703) 860-0091   | DEC PROFESSIONAL    |1810 Michael Faraday Drive, Suite 101
uunet!aussie!rex | Programmers Journal |     Reston, Virginia 22090, USA
----------------------------------------------------------------------------
Convener of the Numerical C Extensions Group (NCEG)
----------------------------------------------------------------------------