Activity
From 23 May 2012 to 21 Jun 2012
21 Jun 2012
- 16:24 CoCoA-5 Slug #191: Slow lex gbasis
- John Abbott wrote:
> No idea why it was so slow before :-(
I had a similar problem to what you described yesteray... - 16:14 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- I think this latest proposal is a good start. It contains the most useful information, and the names of the fields a...
- 15:14 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- ...
- 14:08 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- I suggest removing the @CoCoA@ prefix from the compilation date, the compiler name, and the compilation options.
I... - 10:55 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- see above
- 15:17 CoCoA-5 Bug #194 (Closed): Unhandled CoCoALib error: mixed rings with IsIn operator (for ideal membership)
- I changed the relevant lines (near 2910) in @Interpreter.C@:...
- 15:13 CoCoA-5 Bug #194 (Closed): Unhandled CoCoALib error: mixed rings with IsIn operator (for ideal membership)
- CoCoALib produces a "mixed rings" error in the following example; CoCoA-5 does not intercept the error at the level o...
- 12:39 CoCoA-5 Feature #193: BuiltinFunctions.C getting too long (2000 lines)
> I think we have to make two variables *@vector<NameFunPair> builtIns;@*
You can probably keep a single variabl...- 12:26 CoCoA-5 Feature #193: BuiltinFunctions.C getting too long (2000 lines)
- One proposal for splitting is
- file A: general macros and templates
- file B: all oneliners (the easy ones) with... - 11:21 CoCoA-5 Feature #193 (Closed): BuiltinFunctions.C getting too long (2000 lines)
- Can we split BuiltinFunctions.C so that it is easier to update and faster to compile?
20 Jun 2012
- 16:20 CoCoA-5 Slug #191 (Closed): Slow lex gbasis
- I did @make veryclean@; sync with CVS, and @make@.
Now mine takes about a minute too... very odd!
No idea why it ... - 09:32 CoCoA-5 Slug #191 (In Progress): Slow lex gbasis
- John Abbott wrote:
> The following example comes from an exercise I gave during _Algebra Computazionale_
> [...]
>... - 14:21 CoCoA-5 Bug #192 (Closed): indent prints strings without quotes
- Compare these...
- 14:11 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- How to get the (string) values out of *BuildInfo.C* ?
At the moment there is... - 10:52 CoCoALib Bug #190: Subtle ref count bug for poly rings (via CoeffEmbeddingHom)
- JAA sees two mutually exclusive ways of solving the problem:
# fix the ref counting so that it always works correctly...
19 Jun 2012
- 18:22 CoCoA-5 Slug #191 (Closed): Slow lex gbasis
- The following example comes from an exercise I gave during _Algebra Computazionale_...
- 17:10 CoCoA-5 Feature #19 (Feedback): How to get the version number of CoCoA-5?
- added VersionInfo.
fixed documentation.
This could also return the other info in BuildInfo (such as compilation f... - 17:07 CoCoA-5 Feature #184 (Closed): MAT/INT ? MAT/RINGELEM ?
- I have added "division by a scalar" for matrices and lists; not added anything to the documentation, nor any example/...
- 15:03 CoCoA-5 Feature #184: MAT/INT ? MAT/RINGELEM ?
- Claudia reports that @Matlab@ allows the user to write @M/2@ to mean @(1/2)*M@. JAA finds this reassuring because it...
- 17:04 CoCoALib Feature #174: IsStdGraded: add for PPOrdering, PPMonoid, (Sparse)PolyRing..
- John Abbott wrote:
> Should modules also have an @IsStdGraded@?
> *Note* we have already used the abbrev @std@ for ... - 16:55 CoCoA-5 Feature #185 (Feedback): Banner for CoCoA-5
- The function is called *PrintCoCoA5Banner*.
I'm checking it all in.
If by default it is printed badly in teh GUI we... - 16:44 CoCoA-5 Bug #189 (Closed): malloc ERROR
- The cause of the problem is a design bug in CoCoALib (see issue #190).
As a consequence I shall close this issue.
... - 14:33 CoCoA-5 Bug #189 (In Progress): malloc ERROR
- If you add...
- 14:06 CoCoA-5 Bug #189: malloc ERROR
- @Valgrind@ even complains about the following two lines!!...
- 13:47 CoCoA-5 Bug #189: malloc ERROR
- According to *@valgrind@* the following input is enough to do damage:...
- 12:51 CoCoA-5 Bug #189: malloc ERROR
- I finally reduced the example: (quite a lot reduced ;-)
it seems due to having both a redefinition of the PolyRing a... - 11:04 CoCoA-5 Bug #189: malloc ERROR
- The problem appears to be a *@RingHomValue@* in the interpreter which has a reference to a CoCoALib *@RingHom@* which...
- 09:46 CoCoA-5 Bug #189: malloc ERROR
- Laura's code works fine on my Linux VM.
However, *@Valgrind@* confirms that there is a memory access problem (seems ... - 16:38 CoCoALib Bug #190 (Closed): Subtle ref count bug for poly rings (via CoeffEmbeddingHom)
- The function below looks perfectly reasonable, but it creates a *dangling reference*...
18 Jun 2012
- 17:18 CoCoA-5 Feature #188: CoCoAManual: entries for operators
- John Abbott wrote:
> How would a student find out what @><@ means in CoCoA?
> How to have manual pages for operator... - 16:11 CoCoALib Feature #157: Separate ThreadsafeCounter from symbol.C
- Yes, in its current form it requires BOOST.
I can add some *@#ifdef@* directive to make it compile without BOOST (an... - 11:31 CoCoALib Feature #157: Separate ThreadsafeCounter from symbol.C
- Does this mean that users are now forced to have boost, or we can have a non-threadsafe version without boost?
- 15:10 CoCoA-5 Bug #189: malloc ERROR
- Recompiled with MemPool debugging and linking with @debug_new.o@
The problem disappears... this may be enough to let... - 14:32 CoCoA-5 Bug #189 (Closed): malloc ERROR
- I get the following error...
- 10:58 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- John Abbott wrote:
> @Anna: could you explain your preference for two separate functions rather than a single functi...
15 Jun 2012
- 17:38 CoCoA-5 Feature #184 (In Progress): MAT/INT ? MAT/RINGELEM ?
- I have asked some students (and colleagues) about writing @M/2@ where @M@ is a matrix. The replies were quite varied...
- 16:53 CoCoA-5 Support #187: CoCoA-5 (partial) releases: make the process simpler
- I believe the Linux kernel uses odd/even version numbers to distinguish between public releases and interim versions....
14 Jun 2012
- 16:55 CoCoA-5 Bug #186 (Closed): LCM(0,x)
- Added new test *@test-RingElem1@* which currently just does some simple sanity checks on @gcd@ and @lcm@.
Cleaned ... - 14:28 CoCoA-5 Bug #186: LCM(0,x)
- Fixed the wrong result -- it was a bug in CoCoALib.
Fixed the type error (in @Builtin.C@) but fix is rather *ugly*.
... - 14:37 CoCoA-5 Feature #188 (Closed): CoCoAManual: entries for operators
- How would a student find out what @><@ means in CoCoA?
How to have manual pages for operators in CoCoA?
Here is a... - 14:24 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- @Anna: could you explain your preference for two separate functions rather than a single function?
JAA has a (mild...
13 Jun 2012
- 19:00 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- I added a mechanism to make it simple to change the date in the manual.
So that *? CoCoAManVersion* prints the ver... - 17:16 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- I added the functions *CoCoAVersion()* and *CoCoALibVersion()*.
Before I cvs it all in, how should the "version" fil... - 17:32 CoCoA-5 Support #187 (Closed): CoCoA-5 (partial) releases: make the process simpler
- It is reasonably easy now to make a new CoCoALib (snapshot) release.
On the other hand making a new CoCoA-5 is *quit...
12 Jun 2012
- 00:43 CoCoA-5 Bug #186 (Closed): LCM(0,x)
- ...
- 21:50 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- John Abbott wrote:
> Should the field be called *@CoCoA5@* or just simply *@CoCoA@*?
> JAA prefers *@CoCoA@*. Its ... - 21:47 CoCoA-5 Feature #184: MAT/INT ? MAT/RINGELEM ?
- John Abbott wrote:
> Common sense says that if you can do @M*(1/X)@ then you ought to be able to do @M/X@ (and get th... - 21:43 CoCoA-5 Feature #185: Banner for CoCoA-5
- John Abbott wrote:
> Should "5" be part of the banner?
I think so: it is quite different from CoCoA-4, so we'd be... - 21:41 CoCoA-5 Bug #171: Negate LIST, MAT,...
- I agree to exclude @MATRIXROW@ and @RECORD@
> Can we create values of type @VECTOR@? Are they the same as @Module...
11 Jun 2012
- 20:03 CoCoA-5 Bug #171: Negate LIST, MAT,...
- Scalar multiplication could be useful for:...
- 11:04 CoCoA-5 Bug #171: Negate LIST, MAT,...
- Added scalar mult on the right & unary minus for matrices in C5.
- 10:37 CoCoA-5 Bug #171: Negate LIST, MAT,...
- Added scalar multiplication on the right (for matrices) to CoCoALib.
- 10:02 CoCoA-5 Bug #171: Negate LIST, MAT,...
- John Abbott wrote:
> I've just added *@operator-@* (scalar multiple by -1) to @MatrixArith@.
>
> Contrary to my s... - 19:53 CoCoA-5 Feature #184: MAT/INT ? MAT/RINGELEM ?
- Common sense says that if you can do @M*(1/X)@ then you ought to be able to do @M/X@ (and get the same result!). If ...
- 11:13 CoCoA-5 Feature #184 (Closed): MAT/INT ? MAT/RINGELEM ?
- We can comupte INT*MAT, more recently also MAT*INT.
Should we also allow MAT/INT?
(was not allowed in CoCoA-4)
A... - 19:43 CoCoA-5 Feature #185: Banner for CoCoA-5
- Should "5" be part of the banner?
- 13:45 CoCoA-5 Feature #185: Banner for CoCoA-5
- Will we use the banner in the GUI?
It might be tricky to make it look good if/when the user changes font.
The pro... - 12:05 CoCoA-5 Feature #185 (Closed): Banner for CoCoA-5
- I suggest this banner for CoCoA-5...
- 19:41 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- Should the field be called *@CoCoA5@* or just simply *@CoCoA@*?
JAA prefers *@CoCoA@*. Its value will be a string... - 14:35 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- John Abbott wrote:
> Strictly, each package should have its own version number (maybe they already do in the source ... - 13:42 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- Strictly, each package should have its own version number (maybe they already do in the source text?) I'm not sure i...
- 12:03 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- John Abbott wrote:
> I agree that the version number should be in the executable.
>
> If the version number is in... - 15:41 CoCoALib Support #75: Documentation review by Caleo
- doc for degree and PPVector needs a bit of cleaning (but is comprehensible anyway)
PPWithMask has a (now useless) ... - 11:06 CoCoA-5 Feature #183: Template for unaryMinus?
- Unary minus is implemented via a member fn -- JAA does not know why it was implemented in this way.
- 10:56 CoCoA-5 Feature #183 (New): Template for unaryMinus?
- In Interpreter.C there are templates for *opEqual*, *opStar*, ...
Can we have a similar template for *unaryMinus*?...
10 Jun 2012
- 01:03 CoCoA-5 Bug #171: Negate LIST, MAT,...
- I've just added *@operator-@* (scalar multiple by -1) to @MatrixArith@.
Contrary to my suggestion that multiplicat... - 22:41 CoCoA-5 Bug #171: Negate LIST, MAT,...
- John Abbott wrote:
> If *@N*X@* is valid (for @N@ integer, and @X@ of some type) then it makes perfect sense that @-... - 22:32 CoCoA-5 Bug #171: Negate LIST, MAT,...
- *-M* is not available in CoCoALib whereas
@matrix operator-(ConstMatrixView Mleft, ConstMatrixView Mright)@
is.
Sh...
08 Jun 2012
- 22:16 CoCoALib Feature #174: IsStdGraded: add for PPOrdering, PPMonoid, (Sparse)PolyRing..
- Should modules also have an @IsStdGraded@?
*Note* we have already used the abbrev @std@ for standard (_e.g._ *@StdDe... - 22:11 CoCoA-5 Bug #118: unistd and call to access in Main.C
- I have improved the warning message when the default package directory is not accessible (for text UI, and GUI).
T... - 19:30 CoCoA-5 Bug #182 (Closed): Unescaped double quote inside superstring
- The parser goes into a strange state if an unescaped double quote character is found inside a superstring. It correc...
- 19:09 CoCoALib Support #26: Redmine Administration
- JAA is not keen on such automatic methods. We should try harder to be diligent about updating the percentages. If w...
- 17:59 CoCoALib Support #26 (In Progress): Redmine Administration
- If I understend well (but I think it is dangerous to test it) that we can have percentege set automatically based on ...
- 19:03 CoCoA-5 Feature #19: How to get the version number of CoCoA-5?
- Anna Maria Bigatti wrote:
> * disadvantages: I think the version number should be in the executable
> * advantage... - 18:28 CoCoA-5 Feature #19 (In Progress): How to get the version number of CoCoA-5?
- Something we had talked about:
cocoa-4 used to load the file *init.coc*.
I've found a _tappullo_: call this file *... - 17:23 CoCoA-5 Bug #159 (Closed): Multiplicity sometimes wrong
- 17:20 CoCoA-5 Bug #162 (Closed): RegularityIndex <= 0
- 17:11 CoCoA-5 Support #179: TeX documentation for CoCoA-5
- * revived the old code and removed (for the moment) the inclusion of the horribly obsolete chapters/sections/tutorial...
- 17:05 CoCoA-5 Support #176: CoCoAManual: Doc for new commands
- added *apply*, *wdeg*, *PolyAlgebraHom*
removed *WeightsList* - 08:41 CoCoA-5 Support #181 (New): Functions throwing error even though (trivially) defined
- we should make a catalogue of cases where we choose (for safety of the user) to throw an error even though there is a...
07 Jun 2012
- 23:37 CoCoA-5 Feature #173: Anonymous symbols: should they be available in CoCoA-5?
- Here are a couple of suggestions which do not require manipulating @symbol@ directly. If these two fns cover almost ...
- 23:25 CoCoA-5 Support #176: CoCoAManual: Doc for new commands
- Can I set the assignee to Anna Bigatti? :-)
Well, anyone so long as it is not me :-) - 19:41 CoCoA-5 Support #176: CoCoAManual: Doc for new commands
- Added manual for *NewPolyRing*, *GradingDim*, *RealoadMan* (not yet cvs-ed)
- 23:22 CoCoA-5 Bug #118: unistd and call to access in Main.C
- Anna's point about almost everything (eventually) being built-in is valid; I was forgetting that. Also my "note" in ...
- 23:11 CoCoALib Feature #180 (Closed): GlobalManager: registration of global variables
- Add a feature to *@GlobalManager@* which mimics the Unix fn *@atexit@*.
This allows users to register pseudo-dtors... - 22:57 CoCoALib Bug #178: IsHomog: should it throw an error when there is no grading?
- Yes, I think throwing an error is best(=safest) in this case. Same applies to any other "homog" function.
*2013-02-1... - 17:17 CoCoALib Bug #178 (Closed): IsHomog: should it throw an error when there is no grading?
- Here is a piece of code from CoCoA-5...
- 20:01 CoCoA-5 Support #179 (Closed): TeX documentation for CoCoA-5
- Make makefile target for *texdoc*.
Check that it is created nicely (quotes, dollars, ...)
- 18:48 CoCoA-5 Bug #162 (Resolved): RegularityIndex <= 0
- 18:31 CoCoA-5 Feature #128 (Closed): wordlist.txt generation
- In adding the target to the makefile I cleaned up the manual related targets.
I'm not sure if I did it 100% right (i...
02 Jun 2012
- 23:21 CoCoA-5 Bug #118: unistd and call to access in Main.C
- John Abbott wrote:
> Waiting for Anna's return to discuss the correctness/usefulness of allowing CoCoA-5 to run if t... - 22:54 CoCoA-5 Bug #117: Added 3 times defn of isblank fn
- John Abbott wrote:
> Maybe put @IsBlank@ into a file called *@C5utils@*?
> What do you think? Perhaps a few other fn...
01 Jun 2012
- 23:44 CoCoA-5 Bug #117: Added 3 times defn of isblank fn
- Maybe put @IsBlank@ into a file called *@C5utils@*?
What do you think? Perhaps a few other fns could be moved there... - 23:42 CoCoA-5 Bug #118: unistd and call to access in Main.C
- Anna could you reply to my question in post 5?
I think it should be an error to start CoCoA without the packages. ... - 23:33 CoCoA-5 Bug #148: C-c C-p in emacs goes to wrong line
- NOTE the fn is called *@pop-to-buffer-cocoa5-source-find-error@*.
And also *@pop-to-buffer-cocoa5-source-find-X@*
... - 23:18 CoCoA-5 Bug #171: Negate LIST, MAT,...
- If *@N*X@* is valid (for @N@ integer, and @X@ of some type) then it makes perfect sense that @-X@ should be equivalen...
- 18:35 Bug #53 (Closed): MSVC10 compilation
- 18:09 CoCoA-5 Support #177 (In Progress): CoCoAManual: General part of the documentation is obsolete: update? discard?
- A decision should be made about the general part of the documentation.
Probably we should reduce it considerably, ... - 18:05 CoCoA-5 Support #176 (Closed): CoCoAManual: Doc for new commands
- CoCoA-5 already offers a big collection of new functions and commands
(mainly listed in http://cocoa.dima.unige.it/c... - 17:59 CoCoA-5 Bug #27 (Closed): CoCoA-5 Manual
- I close this issue related with Elisa Fascio's work about reading and fixing all the "command" entries.
Still to d... - 17:47 CoCoA-5 Feature #175 (In Progress): Approximate BuchbergerMoeller: port to CoCoA-5
- It was available in CoCoA-4 through CoCoAServer.
What syntax should it offer? Probably the same as CoCoA-4.
- 17:43 CoCoALib Feature #174 (New): IsStdGraded: add for PPOrdering, PPMonoid, (Sparse)PolyRing..
- Which types should offer *@IsStdGraded@*?
Port it also to CoCoA-5 - 17:41 CoCoA-5 Feature #173 (Rejected): Anonymous symbols: should they be available in CoCoA-5?
- Latest addition in CoCoALib could also be useful in CoCoA-5...
but since @symbol@ is not a type in CoCoA-5 that coul... - 17:36 CoCoA-5 Feature #172 (Closed): add customization for --fullCoCoALibError in EmacsUI
- --fullCoCoALibError is a flag for CoCoAInterpreter.
When active any error gives the full description for CoCoALib de...
31 May 2012
- 18:58 CoCoA-5 Bug #159: Multiplicity sometimes wrong
- Add also Dim&Mult for non-standard degree (or no degree, such as with @Lex@)
They are defined independently of the gr... - 18:01 CoCoA-5 Bug #171 (New): Negate LIST, MAT,...
- Negation ("-") is undefined for X, a list or matrix (and what else???)
However (-1)*X is allowed.
Should we defin... - 17:39 CoCoALib Feature #167 (Closed): Integer operations
30 May 2012
- 18:02 CoCoALib Support #75: Documentation review by Caleo
- Alessandra has looked at the doc and examples for:
* @PPMonoid@ -- approved by Alessandra!
* @symbol@ -- approved b... - 16:40 CoCoA-5 Bug #158 (Closed): May AsRAT produce an INT?
- Done everything.
- 16:14 CoCoA-5 Bug #163 (Closed): RealRootsApprox bombs
- I've contined to use *@RealRootsApprox@* intensively, and no further problems have come to light. So I'm closing thi...
- 16:08 CoCoA-5 Feature #7: Automatic mapping between (some) rings
- It would be handy to have a similar shortcut for homogeneous lists.
Also for ideals, but that raises the same questi... - 13:09 CoCoA-5 Feature #7: Automatic mapping between (some) rings
- Proposal for new "constructors": @R@ ring, @A@ matrix, @x@ ringelem (or powerproduct or ...), ... and what else?
*@M... - 13:40 CoCoALib Bug #63 (Closed): Add links to examples in documentation
29 May 2012
- 18:45 CoCoALib Feature #153 (Closed): Shorter simpler names for some bool3 values and functions
- I've written a simple example -- I hope Alessandra Caleo likes it!
- 10:07 CoCoALib Feature #153 (Resolved): Shorter simpler names for some bool3 values and functions
- Implemented the last suggestion, that way we can try it. Remember that *@bool3@* may eventually be replaced by *@tri...
- 16:16 CoCoALib Feature #157 (Closed): Separate ThreadsafeCounter from symbol.C
- Separated *@ThreadsafeCounter@*; written documentation.
Used @ThreadsafeCounter@ inside @NewRingID@ in @ring.C@.
Al...
28 May 2012
- 17:10 CoCoALib Feature #153: Shorter simpler names for some bool3 values and functions
- Proposal for shorter names: *@IsTrue3@* and *@IsFalse3@* and *@IsUncertain3@*
Propose replacing @DefinitelyTrue@, ... - 16:25 CoCoALib Feature #157: Separate ThreadsafeCounter from symbol.C
- JAA is not sure how to test the threadsafe counter since we don't know how to compile and run multithreaded programs....
- 16:20 CoCoALib Bug #22: Rename PPMonoidEvZZ?
- A "very small exp" version may be slightly faster because more PPs fit in the cache, but I doubt the slight gain woul...
- 16:13 CoCoALib Feature #156 (Closed): Brand new symbol(s)
- I've cleaned the code, and updated the documentation.
Note: Task #157 will make a further change to this one.
A... - 15:54 CoCoALib Feature #40: Squarefree factorization - Alessio d'Ali`
- Alessio has written a prototype test program; he will improve it.
He has added some detail to the report.
- 14:11 CoCoALib Support #160 (Closed): Cleanup doc for rings
- 11:57 CoCoA-5 Bug #110 (Closed): Surprise return type for GCD of a list of ints
- Implemented *@IsTrueGCDDomain@*; the main cost was sorting out the consequential changes. Eliminated @ERR::NotGCDDom...
- 11:31 CoCoALib Feature #167: Integer operations
- I've moved (into *@IntOperations@*) and reorganized all the integer functions. There were lots of consequential chan...
25 May 2012
- 15:13 CoCoA-5 Bug #170 (Closed): CoCoAManual HTML: page for "Try"
- I was not able to find the manual page for *@Try@* using the HTML version of the CoCoA-5 manual. I clicked on the "s...
- 14:42 CoCoALib Feature #167: Integer operations
- Problem originally arose in CoCoA-5, but the solution lies in changes to CoCoALib.
- 14:41 CoCoALib Feature #167 (In Progress): Integer operations
- The hard part will be all the consequential changes.
- 14:23 CoCoA-5 Support #169 (Closed): Font for parameters in manual
- Often the description in the CoCoA manual refers to the formal parameters by name.
Should these names be put in a sp... - 14:20 CoCoA-5 Design #168 (Closed): Type info in CoCoA-5 manual
- The manual entries in CoCoAHelp.xml include a collection of the types involved.
What convention should be used for t... - 14:17 CoCoA-5 Feature #131 (Closed): Conversion from bool to INT
- Implemented *@Bool01@* in the package @NotBuiltin.cpkg5@.
The fn *@Error@* (with capital @E@) is now built-in rather... - 11:41 CoCoA-5 Feature #131 (In Progress): Conversion from bool to INT
- After speaking to Anna about the various possibilities, she convinced me that the simplest approach is best (at least...
24 May 2012
- 19:10 CoCoA-5 Bug #137 (Closed): JAA does not like the name IndetInd
- 16:19 CoCoALib Feature #167 (Closed): Integer operations
- While adding *@IsDivisible@* for integers, it was not clear where to put the declarations and definitions. So far th...
23 May 2012
- 09:53 CoCoA-5 Bug #166 (Closed): Dim/Multiplicity with Lex ordering -- NYI
- ...
Also available in: Atom