Index: doc/guide/orientation/orientation.rst
===================================================================
--- doc/guide/orientation/orientation.rst	(revision 3d4083969c45f693ad16ca85a10880859ed708e7)
+++ doc/guide/orientation/orientation.rst	(revision 82592da3721b7e2098cf6346cf224814189fadb3)
@@ -62,15 +62,30 @@
 care for large ranges of angle.
 
-Note that the form factors for asymmetric particles are also performing
-numerical integrations over one or more variables, so care should be taken,
-especially with very large particles or more extreme aspect ratios. Users can
-experiment with the values of *Npts* and *Nsigs*, the number of steps used in the
-integration and the range spanned in number of standard deviations. The
-standard deviation is entered in units of degrees. For a rectangular
-(uniform) distribution the full width should be $\pm \sqrt(3)$ ~ 1.73 standard
-deviations (this may be changed soon).
+.. note::
+    Note that the form factors for oriented particles are also performing
+    numerical integrations over one or more variables, so care should be taken,
+    especially with very large particles or more extreme aspect ratios. In such 
+    cases results may not be accurate, particularly at very high Q, unless the model
+    has been specifically coded to use limiting forms of the scattering equations.
+    
+    For best numerical results keep the $\theta$ distribution narrower than the $\phi$ 
+    distribution. Thus for asymmetric particles, such as elliptical_cylinder, you may 
+    need to reorder the sizes of the three axes to acheive the desired result. 
+    This is due to the issues of mapping a rectangular distribution onto the 
+    surface of a sphere.
 
-Where appropriate, for best numerical results, keep $a < b < c$ and the
-$\theta$ distribution narrower than the $\phi$ distribution.
+Users can experiment with the values of *Npts* and *Nsigs*, the number of steps 
+used in the integration and the range spanned in number of standard deviations. 
+The standard deviation is entered in units of degrees. For a "rectangular" 
+distribution the full width should be $\pm \sqrt(3)$ ~ 1.73 standard deviations. 
+The new "uniform" distribution avoids this by letting you directly specify the 
+half width.
+
+The angular distributions will be truncated outside of the range -180 to +180 
+degrees, so beware of using saying a broad Gaussian distribution with large value
+of *Nsigs*, as the array of *Npts* may be truncated to many fewer points than would 
+give a good integration,as well as becoming rather meaningless. (At some point 
+in the future the actual polydispersity arrays may be made available to the user 
+for inspection.)
 
 Some more detailed technical notes are provided in the developer section of
@@ -79,3 +94,3 @@
 *Document History*
 
-| 2017-10-27 Richard Heenan
+| 2017-11-06 Richard Heenan
Index: sasmodels/models/core_shell_bicelle_elliptical.c
===================================================================
--- sasmodels/models/core_shell_bicelle_elliptical.c	(revision becded3d803d05553cd978e361eeb35b6f6736bf)
+++ sasmodels/models/core_shell_bicelle_elliptical.c	(revision 82592da3721b7e2098cf6346cf224814189fadb3)
@@ -92,7 +92,7 @@
 
     // Compute effective radius in rotated coordinates
-    const double qr_hat = sqrt(square(r_major*qa) + square(r_minor*qb));
-    const double qrshell_hat = sqrt(square((r_major+thick_rim)*qa)
-                                   + square((r_minor+thick_rim)*qb));
+    const double qr_hat = sqrt(square(r_major*qb) + square(r_minor*qa));
+    const double qrshell_hat = sqrt(square((r_major+thick_rim)*qb)
+                                   + square((r_minor+thick_rim)*qa));
     const double be1 = sas_2J1x_x( qr_hat );
     const double be2 = sas_2J1x_x( qrshell_hat );
Index: sasmodels/models/core_shell_bicelle_elliptical_belt_rough.c
===================================================================
--- sasmodels/models/core_shell_bicelle_elliptical_belt_rough.c	(revision 129bdc402ee898067c26d6c28ad0e6d66518e12c)
+++ sasmodels/models/core_shell_bicelle_elliptical_belt_rough.c	(revision 82592da3721b7e2098cf6346cf224814189fadb3)
@@ -91,5 +91,5 @@
           double sigma)
 {
-    // THIS NEEDS TESTING
+    // integrated 2d seems to match 1d reasonably well, except perhaps at very high Q
     // Vol1,2,3 and dr1,2,3 are now for Vcore, Vcore+rim, Vcore+face,
     const double dr1 = -rhor - rhoh + rhoc + rhosolv;
@@ -103,8 +103,8 @@
 
     // Compute effective radius in rotated coordinates
-    const double qr_hat = sqrt(square(r_major*qa) + square(r_minor*qb));
+    const double qr_hat = sqrt(square(r_major*qb) + square(r_minor*qa));
     // does this need to be changed for the "missing corners" where there there is no "belt" ?
-    const double qrshell_hat = sqrt(square((r_major+thick_rim)*qa)
-                                   + square((r_minor+thick_rim)*qb));
+    const double qrshell_hat = sqrt(square((r_major+thick_rim)*qb)
+                                   + square((r_minor+thick_rim)*qa));
     const double be1 = sas_2J1x_x( qr_hat );
     const double be2 = sas_2J1x_x( qrshell_hat );
Index: sasmodels/models/elliptical_cylinder.c
===================================================================
--- sasmodels/models/elliptical_cylinder.c	(revision becded3d803d05553cd978e361eeb35b6f6736bf)
+++ sasmodels/models/elliptical_cylinder.c	(revision 82592da3721b7e2098cf6346cf224814189fadb3)
@@ -28,10 +28,10 @@
         //const double arg = radius_minor*sin_val;
         double inner_sum=0;
-        for(int j=0;j<20;j++) {
-            //20 gauss points for the inner integral
-            const double theta = ( Gauss20Z[j]*(vbj-vaj) + vaj + vbj )/2.0;
+        for(int j=0;j<76;j++) {
+            //20 gauss points for the inner integral, increase to 76, RKH 6Nov2017
+            const double theta = ( Gauss76Z[j]*(vbj-vaj) + vaj + vbj )/2.0;
             const double r = sin_val*sqrt(rA - rB*cos(theta));
             const double be = sas_2J1x_x(q*r);
-            inner_sum += Gauss20Wt[j] * be * be;
+            inner_sum += Gauss76Wt[j] * be * be;
         }
         //now calculate the value of the inner integral
@@ -61,5 +61,5 @@
     // Compute:  r = sqrt((radius_major*cos_nu)^2 + (radius_minor*cos_mu)^2)
     // Given:    radius_major = r_ratio * radius_minor
-    const double qr = radius_minor*sqrt(square(r_ratio*qa) + square(qb));
+    const double qr = radius_minor*sqrt(square(r_ratio*qb) + square(qa));
     const double be = sas_2J1x_x(qr);
     const double si = sas_sinx_x(qc*0.5*length);
