ginac.git
17 years agore-enabled the assignment operator of class symbol
Christian Bauer [Sun, 15 Sep 2002 21:07:44 +0000 (21:07 +0000)]
re-enabled the assignment operator of class symbol

17 years agofixed possible memory corruption in index contraction
Christian Bauer [Thu, 5 Sep 2002 20:16:59 +0000 (20:16 +0000)]
fixed possible memory corruption in index contraction

17 years ago* Fix broken C output. (Chris Dams)
Richard Kreckel [Mon, 2 Sep 2002 20:42:56 +0000 (20:42 +0000)]
* Fix broken C output.  (Chris Dams)

17 years ago* Fix CLN output of -2*a-2*b. (Chris Dams)
Richard Kreckel [Tue, 27 Aug 2002 17:18:07 +0000 (17:18 +0000)]
* Fix CLN output of -2*a-2*b.  (Chris Dams)

17 years agoimplemented the case in pseries::derivative() where s!=var
Christian Bauer [Wed, 7 Aug 2002 21:47:18 +0000 (21:47 +0000)]
implemented the case in pseries::derivative() where s!=var

17 years agodocumentation update
Christian Bauer [Mon, 5 Aug 2002 18:27:18 +0000 (18:27 +0000)]
documentation update

17 years agoupdated the autogen.sh script
Christian Bauer [Sat, 3 Aug 2002 19:20:22 +0000 (19:20 +0000)]
updated the autogen.sh script

17 years ago* AUTHORS: Add Chris Dams as contributor of patches. release_1-0-10
Richard Kreckel [Wed, 24 Jul 2002 22:15:50 +0000 (22:15 +0000)]
* AUTHORS: Add Chris Dams as contributor of patches.
* NEWS, configure.ac, debian/changelog: Finalize for version 1.0.10.

17 years agoadded a check for that canonicalize() bug
Christian Bauer [Wed, 24 Jul 2002 20:18:33 +0000 (20:18 +0000)]
added a check for that canonicalize() bug

17 years agodocumentation update
Christian Bauer [Wed, 24 Jul 2002 19:59:27 +0000 (19:59 +0000)]
documentation update

17 years agocanonicalize() failed to return zero for an antisymmetric combination of two
Christian Bauer [Mon, 22 Jul 2002 20:32:49 +0000 (20:32 +0000)]
canonicalize() failed to return zero for an antisymmetric combination of two
or more equal elements if the elements were already in their canonical order

17 years agophysical momenta are 4-dimensional (just to prove that we can do this now :-)
Christian Bauer [Thu, 18 Jul 2002 21:57:29 +0000 (21:57 +0000)]
physical momenta are 4-dimensional (just to prove that we can do this now :-)

17 years agometric tensors now silently replace their indices' dimensions with their
Christian Bauer [Thu, 18 Jul 2002 21:56:10 +0000 (21:56 +0000)]
metric tensors now silently replace their indices' dimensions with their
minimum instead of complaining about mismatching dimensions

17 years ago- The dimension of indices is now treated as a kind of "effective" dimension
Christian Bauer [Thu, 18 Jul 2002 19:24:33 +0000 (19:24 +0000)]
- The dimension of indices is now treated as a kind of "effective" dimension
  with respect to contractions; this allows for a limited support of subspaces,
  e.g. delta.i[2].j[2] * a.i[3] -> a.j[2] by simplify_indexed(), and
  delta.i[2].i[3] -> 2. Likewise, eta~mu[3]~nu[3] * eta.mu[4].nu[4] -> 3 etc.
  (The numbers in brackets are the index dimensions which are not visible
  in the output.)
  Symbolic ("N", "D", ...) dimensions are always assumed to be higher than
  numeric ones.
- eps0123 is gone, dirac_trace() generates ordinary epsilon tensors with
  4-dimensional indices.

17 years ago- added idx::replace_dim() and idx::minimal_dim()
Christian Bauer [Mon, 15 Jul 2002 14:23:56 +0000 (14:23 +0000)]
- added idx::replace_dim() and idx::minimal_dim()
- indices no longer need to be of the same dimension to be recognized as
  dummy indices, but they must be comparable (to determine their minimum)
(Nein, Markus, das ist noch nicht das mit den vierdimensionalen Tensoren)

17 years agothe input parser now handles (simple) indexed objects; the indices to be used
Christian Bauer [Fri, 12 Jul 2002 18:08:49 +0000 (18:08 +0000)]
the input parser now handles (simple) indexed objects; the indices to be used
have to be specified in the same list as the symbols

17 years agodocumentation update
Christian Bauer [Fri, 12 Jul 2002 18:07:52 +0000 (18:07 +0000)]
documentation update

17 years agomoved some common code to the 'tensor' class
Christian Bauer [Mon, 8 Jul 2002 21:07:19 +0000 (21:07 +0000)]
moved some common code to the 'tensor' class

17 years agopowers of indexed objects are now parenthesized correctly in LaTeX output
Christian Bauer [Wed, 3 Jul 2002 18:19:57 +0000 (18:19 +0000)]
powers of indexed objects are now parenthesized correctly in LaTeX output

17 years agoclifford and color objects are not contracted if their representation labels
Christian Bauer [Tue, 25 Jun 2002 21:36:23 +0000 (21:36 +0000)]
clifford and color objects are not contracted if their representation labels
are different

17 years ago* Insert date and bump patchlevel. release_1-0-9
Richard Kreckel [Tue, 11 Jun 2002 21:47:19 +0000 (21:47 +0000)]
* Insert date and bump patchlevel.

17 years agodocumentation update
Christian Bauer [Tue, 11 Jun 2002 19:35:18 +0000 (19:35 +0000)]
documentation update

17 years agofixed a crash when constructing expressions like (dirac_ONE()+dirac_gamma5())*dirac_g...
Christian Bauer [Mon, 10 Jun 2002 21:30:50 +0000 (21:30 +0000)]
fixed a crash when constructing expressions like (dirac_ONE()+dirac_gamma5())*dirac_gamma5()*dirac_gamma5()

17 years agoimplemented relational::subs()
Christian Bauer [Mon, 27 May 2002 20:47:10 +0000 (20:47 +0000)]
implemented relational::subs()

17 years agodocumentation update
Christian Bauer [Mon, 27 May 2002 20:47:00 +0000 (20:47 +0000)]
documentation update

17 years agoadded an additional dummy index symmetrization run over sums in
Christian Bauer [Sat, 25 May 2002 18:39:43 +0000 (18:39 +0000)]
added an additional dummy index symmetrization run over sums in
simplify_indexed(), to find possible cancellations

17 years agofixed a bug in the raising/lowering of dummy indices and extended it to work
Christian Bauer [Fri, 24 May 2002 19:55:35 +0000 (19:55 +0000)]
fixed a bug in the raising/lowering of dummy indices and extended it to work
on single indexed objects also

17 years agosimplify_indexed() raises/lowers dummy indices to canonicalize their variance
Christian Bauer [Thu, 23 May 2002 04:15:15 +0000 (04:15 +0000)]
simplify_indexed() raises/lowers dummy indices to canonicalize their variance
as far as possible

17 years agomentioned the imaginary unit 'I'
Christian Bauer [Mon, 13 May 2002 20:21:57 +0000 (20:21 +0000)]
mentioned the imaginary unit 'I'

17 years agoreactivated an epsilon-tensor simplification hack because of a user request
Christian Bauer [Fri, 10 May 2002 19:02:41 +0000 (19:02 +0000)]
reactivated an epsilon-tensor simplification hack because of a user request

17 years agoit is now enforced that indices of a metric tensor are of the same dimension
Christian Bauer [Thu, 25 Apr 2002 19:13:58 +0000 (19:13 +0000)]
it is now enforced that indices of a metric tensor are of the same dimension

17 years ago* Bump timestamps and version numbers. release_1-0-8
Richard Kreckel [Sun, 31 Mar 2002 21:56:25 +0000 (21:56 +0000)]
* Bump timestamps and version numbers.

17 years ago* mul::expand(): Fix bug in aggressive version of expansion of two sums
Richard Kreckel [Thu, 28 Mar 2002 15:44:28 +0000 (15:44 +0000)]
* mul::expand(): Fix bug in aggressive version of expansion of two sums
  and enable it.

17 years ago* Clean up the output of all timings to stderr.
Richard Kreckel [Thu, 28 Mar 2002 15:38:29 +0000 (15:38 +0000)]
* Clean up the output of all timings to stderr.

17 years ago* mul::expand() (mul.cpp): When multiplying two sums, be careful not to
Richard Kreckel [Thu, 28 Mar 2002 01:14:02 +0000 (01:14 +0000)]
* mul::expand() (mul.cpp): When multiplying two sums, be careful not to
  allocate too much.

17 years ago* expairseq::combine_same_terms_sorted_seq() (expairseq.cpp): make this
Richard Kreckel [Thu, 28 Mar 2002 00:27:14 +0000 (00:27 +0000)]
* expairseq::combine_same_terms_sorted_seq() (expairseq.cpp): make this
  ugh, ohhh, ahh, more... legible.  ;-)

17 years ago* Bump up version, keep INTERFACE_AGE at zero.
Richard Kreckel [Thu, 28 Mar 2002 00:16:26 +0000 (00:16 +0000)]
* Bump up version, keep INTERFACE_AGE at zero.
  (Yeah sure, it's early.  But this way we don't forget it.)

17 years ago* (time_fateman_expand.cpp): new file.
Richard Kreckel [Thu, 28 Mar 2002 00:13:25 +0000 (00:13 +0000)]
* (time_fateman_expand.cpp): new file.
* (Makefile.am): compile it.
* (times.h, times.cpp): declare and call it.

17 years ago* expairseq::expairseq(const epvector&, const ex& oc) (expairseq.cpp):
Richard Kreckel [Thu, 28 Mar 2002 00:02:51 +0000 (00:02 +0000)]
* expairseq::expairseq(const epvector&, const ex& oc) (expairseq.cpp):
  check assertion: GINAC_ASSERT(is_a<numeric>(oc)).
* expairseq::expairseq(epvector*, const ex& oc) (expairseq.cpp): Likewise.
* expair_rest_is_less (expair.h): New functor...
* expairseq::canonicalize() (expairseq.cpp): ...used here.

17 years ago* power::expand_add(): allocate the precise amount needed for representing
Richard Kreckel [Wed, 27 Mar 2002 23:41:42 +0000 (23:41 +0000)]
* power::expand_add(): allocate the precise amount needed for representing
  the result.  And some minor readability cleanups...

17 years ago* Don't push void to static Bernoulli vector, it breaks with GCC-3.1.
Richard Kreckel [Wed, 27 Mar 2002 23:17:25 +0000 (23:17 +0000)]
* Don't push void to static Bernoulli vector, it breaks with GCC-3.1.

17 years agoinlined ex::swap() and provided versions of iter_swap() for ex and expair
Christian Bauer [Wed, 27 Mar 2002 21:24:32 +0000 (21:24 +0000)]
inlined ex::swap() and provided versions of iter_swap() for ex and expair
objects to make the STL sorting algorithms a little more efficient

17 years ago* Add namespace declarators to is_ex_the_function().
Richard Kreckel [Sun, 24 Mar 2002 19:11:12 +0000 (19:11 +0000)]
* Add namespace declarators to is_ex_the_function().

17 years ago* Update dates, touch, and all this... release_1-0-7
Richard Kreckel [Mon, 18 Mar 2002 22:02:34 +0000 (22:02 +0000)]
* Update dates, touch, and all this...

17 years ago* Bump version (early, but I don't want to forget to set INTERFACE_AGE
Richard Kreckel [Fri, 8 Mar 2002 20:35:49 +0000 (20:35 +0000)]
* Bump version (early, but I don't want to forget to set INTERFACE_AGE
  to zero.)

17 years ago* matrix:;pow(): Fix exponent==0 case.
Richard Kreckel [Fri, 8 Mar 2002 20:32:59 +0000 (20:32 +0000)]
* matrix:;pow(): Fix exponent==0 case.
* matrix::print(): Implement print_latex.
* Add unit_matrix(unsigend) and unit_matrix(unsigned,unsigned).

17 years agoupdated the description of degree()/ldegree()
Christian Bauer [Wed, 6 Mar 2002 18:01:58 +0000 (18:01 +0000)]
updated the description of degree()/ldegree()

17 years agofixed LaTeX output of indexed objects
Christian Bauer [Tue, 5 Mar 2002 20:32:16 +0000 (20:32 +0000)]
fixed LaTeX output of indexed objects

17 years agodocumentation update
Christian Bauer [Tue, 5 Mar 2002 20:32:02 +0000 (20:32 +0000)]
documentation update

17 years ago* Insert date. release_1-0-6
Richard Kreckel [Mon, 4 Mar 2002 22:09:29 +0000 (22:09 +0000)]
* Insert date.

17 years agoPrepare for release 1.0.6:
Richard Kreckel [Mon, 4 Mar 2002 17:13:29 +0000 (17:13 +0000)]
Prepare for release 1.0.6:
* ginac.m4: quote AM_PATH_GINAC (recommended by Roberto Bagnara).
* configure.ac, debian/changelog: bump up version.
* doc/tutorial/ginac.tex: touch?

17 years ago"(x+1).subs(x==x-1)" now returns the correct result "x" instead of "x-1"
Christian Bauer [Thu, 28 Feb 2002 17:53:47 +0000 (17:53 +0000)]
"(x+1).subs(x==x-1)" now returns the correct result "x" instead of "x-1"

17 years agofixed typos in examples
Christian Bauer [Thu, 28 Feb 2002 17:53:40 +0000 (17:53 +0000)]
fixed typos in examples

17 years agoadded some checks for subs() behavior
Christian Bauer [Thu, 28 Feb 2002 17:53:32 +0000 (17:53 +0000)]
added some checks for subs() behavior

17 years agodocumentation update
Christian Bauer [Thu, 28 Feb 2002 17:53:20 +0000 (17:53 +0000)]
documentation update

17 years agoadded check for consistency of numeric input/output routines
Christian Bauer [Tue, 29 Jan 2002 22:46:20 +0000 (22:46 +0000)]
added check for consistency of numeric input/output routines

17 years ago* Bump up versions to 1.0.5, adjust dates.
Richard Kreckel [Sun, 27 Jan 2002 20:59:12 +0000 (20:59 +0000)]
* Bump up versions to 1.0.5, adjust dates.

17 years ago* Add Roberto Bagnara.
Richard Kreckel [Sat, 26 Jan 2002 16:29:52 +0000 (16:29 +0000)]
* Add Roberto Bagnara.

17 years ago* numeric::print(): Treat imaginary numbers correctly.
Richard Kreckel [Sat, 26 Jan 2002 16:29:42 +0000 (16:29 +0000)]
* numeric::print(): Treat imaginary numbers correctly.

17 years ago- (l)degree(s), coeff(s, n) and collect(s) were extended to accept expressions
Christian Bauer [Fri, 25 Jan 2002 18:33:01 +0000 (18:33 +0000)]
- (l)degree(s), coeff(s, n) and collect(s) were extended to accept expressions
  of any class (except add/mul/ncmul/numeric) for "s". They should even work
  if "s" is a "power" object, as long as the exponent is non-integer, but with
  some limitations. For example, you can "collect(a*2^x+b*2^x, 2^x)" to get
  "(a+b)*2^x", but "degree(2^(3*x), 2^x)" yields 0 instead of 3).

17 years ago* Finilize version 1.0.4 (version numbers, copyrights and such rubbish). release_1-0-4
Richard Kreckel [Fri, 25 Jan 2002 01:28:01 +0000 (01:28 +0000)]
* Finilize version 1.0.4 (version numbers, copyrights and such rubbish).

17 years ago* mul::expand(): Considerable speedup through caching in nested loop.
Richard Kreckel [Fri, 25 Jan 2002 00:03:44 +0000 (00:03 +0000)]
* mul::expand(): Considerable speedup through caching in nested loop.

17 years ago* bernoulli(): Add Markus Nullmeier's new implementation.
Richard Kreckel [Tue, 22 Jan 2002 17:01:10 +0000 (17:01 +0000)]
* bernoulli(): Add Markus Nullmeier's new implementation.
* numeric::numeric({int,unsigned}): Really construct CLN immediates.

17 years ago* Enable EXTRACT_ALL for LaTeX.
Richard Kreckel [Sat, 19 Jan 2002 19:12:47 +0000 (19:12 +0000)]
* Enable EXTRACT_ALL for LaTeX.

17 years ago* Docu: elaborate definition of sqrfree() (by Roberto Bagnara)
Richard Kreckel [Sat, 19 Jan 2002 19:12:24 +0000 (19:12 +0000)]
* Docu: elaborate definition of sqrfree() (by Roberto Bagnara)

17 years ago* Updated.
Richard Kreckel [Fri, 18 Jan 2002 20:06:01 +0000 (20:06 +0000)]
* Updated.

17 years ago* Updated.
Richard Kreckel [Fri, 18 Jan 2002 19:59:19 +0000 (19:59 +0000)]
* Updated.

17 years ago* Faster Bernoulli numbers (Markus Nullmeier).
Richard Kreckel [Fri, 18 Jan 2002 19:59:09 +0000 (19:59 +0000)]
* Faster Bernoulli numbers (Markus Nullmeier).

17 years ago* GINAC_CHECK_ERRORS: Don't delete cache_file /dev/null (by Roberto Bagnara).
Richard Kreckel [Tue, 15 Jan 2002 14:46:17 +0000 (14:46 +0000)]
* GINAC_CHECK_ERRORS: Don't delete cache_file /dev/null (by Roberto Bagnara).

17 years ago* Document the rounding behavior as dicussed on ginac-list.
Richard Kreckel [Fri, 11 Jan 2002 18:48:39 +0000 (18:48 +0000)]
* Document the rounding behavior as dicussed on ginac-list.

17 years ago* Adjust for 1.0.3. release_1-0-3
Richard Kreckel [Fri, 21 Dec 2001 21:06:52 +0000 (21:06 +0000)]
* Adjust for 1.0.3.

17 years ago* Fix thinkos in print_csrc context.
Richard Kreckel [Fri, 21 Dec 2001 20:32:23 +0000 (20:32 +0000)]
* Fix thinkos in print_csrc context.
  (Cebix: read the implementations of ex::compare() and basic::compare()!!!)

17 years agofixed a bug where quo() would call vector::reserve() with a negative argument
Christian Bauer [Thu, 20 Dec 2001 14:24:45 +0000 (14:24 +0000)]
fixed a bug where quo() would call vector::reserve() with a negative argument

17 years agoadded check for quo() bug
Christian Bauer [Thu, 20 Dec 2001 14:24:34 +0000 (14:24 +0000)]
added check for quo() bug

17 years agodocumentation update
Christian Bauer [Thu, 20 Dec 2001 14:24:27 +0000 (14:24 +0000)]
documentation update

17 years ago* Packaging update. release_1-0-2
Richard Kreckel [Wed, 19 Dec 2001 22:06:45 +0000 (22:06 +0000)]
* Packaging update.

17 years ago* Remove check for empty seq in Python output.
Richard Kreckel [Wed, 19 Dec 2001 22:06:24 +0000 (22:06 +0000)]
* Remove check for empty seq in Python output.

17 years ago* Old and future changes: relativity at work...
Richard Kreckel [Wed, 19 Dec 2001 19:17:26 +0000 (19:17 +0000)]
* Old and future changes: relativity at work...

17 years ago* Huh, huh...
Richard Kreckel [Wed, 19 Dec 2001 19:16:48 +0000 (19:16 +0000)]
* Huh, huh...

17 years ago* Added output-support for Python bindings and LaTeX printing for
Richard Kreckel [Wed, 19 Dec 2001 19:16:16 +0000 (19:16 +0000)]
* Added output-support for Python bindings and LaTeX printing for
  indexed objects (Pearu Peterson).
* relational.*: Removed superfluous is_equal_same_type()...
* inifcns_trans.cpp: ...added extern declaration as workaround for
  compiler-bug triggered by changes to relational.*,
* input_parser.yy: added missing namespace specification.

17 years ago* Added some long-pending docu.
Richard Kreckel [Tue, 18 Dec 2001 19:03:48 +0000 (19:03 +0000)]
* Added some long-pending docu.

17 years ago- input parser recognizes "sqrt()", which is also used in the output
Christian Bauer [Tue, 18 Dec 2001 18:48:06 +0000 (18:48 +0000)]
- input parser recognizes "sqrt()", which is also used in the output
- divide(a,b,q) only modifies q if the division succeeds; also, divide(a,b,a)
  works now
- fixed small bug in dummy index renaming which could cause it to not
  recognize renamable indices in some cases
- power::degree() and power::ldegree() throw an exception when encountering
  a non-integer exponent

17 years ago* Bump version number. release_1-0-1
Richard Kreckel [Thu, 22 Nov 2001 19:33:58 +0000 (19:33 +0000)]
* Bump version number.

17 years ago* Add Pearu's patch canonicalizing class relational, augmented by missing
Richard Kreckel [Thu, 22 Nov 2001 19:32:56 +0000 (19:32 +0000)]
* Add Pearu's patch canonicalizing class relational, augmented by missing
  logic in compare_same_type().

17 years ago* Minor cleanups to avoid copying of symbols and stuff like that.
Richard Kreckel [Thu, 22 Nov 2001 19:31:34 +0000 (19:31 +0000)]
* Minor cleanups to avoid copying of symbols and stuff like that.

17 years agoreadline versions like "4.735beta5-pl2" should now be correctly recognized
Christian Bauer [Tue, 20 Nov 2001 20:42:05 +0000 (20:42 +0000)]
readline versions like "4.735beta5-pl2" should now be correctly recognized

17 years ago* Make zeta1_eval() more lightweight by copying less stuff.
Richard Kreckel [Mon, 19 Nov 2001 19:56:46 +0000 (19:56 +0000)]
* Make zeta1_eval() more lightweight by copying less stuff.

17 years ago* Change section about Square-free decomposition reflecting the recent
Richard Kreckel [Sun, 18 Nov 2001 20:10:27 +0000 (20:10 +0000)]
* Change section about Square-free decomposition reflecting the recent
  bugfix in the sqrfree() function.

17 years ago* sqrfree(ex, lst): after factoring in the first variable, we forgot to call
Richard Kreckel [Sat, 17 Nov 2001 18:48:46 +0000 (18:48 +0000)]
* sqrfree(ex, lst): after factoring in the first variable, we forgot to call
  sqrfree again in the remaining variables for the constant term.  For
  example, the expanded polynomial (x+1)*(y-1)*z only found one of the
  factors, no matter which variable order was specified in lst.

17 years ago* Some minor optimization glitches.
Richard Kreckel [Fri, 16 Nov 2001 18:59:12 +0000 (18:59 +0000)]
* Some minor optimization glitches.

17 years ago* Debian packaging reorganized to meet policy.
Richard Kreckel [Mon, 12 Nov 2001 14:38:49 +0000 (14:38 +0000)]
* Debian packaging reorganized to meet policy.

17 years ago* Really remove silly acronyms. The fucking network breakdown this release_1-0-0
Richard Kreckel [Tue, 6 Nov 2001 20:04:16 +0000 (20:04 +0000)]
* Really remove silly acronyms.  The fucking network breakdown this
  afternoon has garbled the file so half of the commit has failed.

17 years ago* ctor from string: fix for GCC3.0, avoid some string self-assignments.
Richard Kreckel [Tue, 6 Nov 2001 18:55:29 +0000 (18:55 +0000)]
* ctor from string: fix for GCC3.0, avoid some string self-assignments.

17 years ago* Removed @acronym{}, it looks silly.
Richard Kreckel [Tue, 6 Nov 2001 17:52:29 +0000 (17:52 +0000)]
* Removed @acronym{}, it looks silly.
* Broke some long lines.

17 years ago* Adjusted Debinization.
Richard Kreckel [Tue, 6 Nov 2001 14:05:35 +0000 (14:05 +0000)]
* Adjusted Debinization.

17 years ago* Inserted date.
Richard Kreckel [Tue, 6 Nov 2001 14:04:43 +0000 (14:04 +0000)]
* Inserted date.

17 years ago* Bump up version, fix typos.
Richard Kreckel [Mon, 5 Nov 2001 13:05:01 +0000 (13:05 +0000)]
* Bump up version, fix typos.

17 years ago* Remove timing for -O0, people really shouldn't use it.
Richard Kreckel [Mon, 5 Nov 2001 13:04:36 +0000 (13:04 +0000)]
* Remove timing for -O0, people really shouldn't use it.

17 years ago* Unobfuscate the estimate check for the last coefficient.
Richard Kreckel [Mon, 5 Nov 2001 13:00:24 +0000 (13:00 +0000)]
* Unobfuscate the estimate check for the last coefficient.

17 years ago* Fix bug in ctor from string, reported by Christopher Kennedy.
Richard Kreckel [Mon, 5 Nov 2001 12:59:12 +0000 (12:59 +0000)]
* Fix bug in ctor from string, reported by Christopher Kennedy.