You are not logged in.

- Topics: Active | Unanswered

**navaburo****Member**- From: NYC
- Registered: 2009-01-18
- Posts: 11
- Website

Whenever I plot a particular parametric3D plot in Mathematica 7 and then manually rotate it around I get huge spikes in X's CPU usage (expected) which then drops a few seconds after I finish rotating X's usage drops (also expected). What is NOT expected is that my accelerometer driver (klis3lv02d) starts using 30% of my CPU during and after rotating. It will continue to do this even after closing that origonal mathematica notebook, only relaxing after I exit from or kill mathematica.

I am running an HP nw8440 notebook with everything stock except an upgraded harddrive.

I am fully aware that Mathematica is not supported, and may not play nicely with the FOSS universe, but this is a very strange behavior which I thought should be reported!

Here's the offending mathematica code if anyone is curious (it's for visualizing the time evolution of spin 1/2 system in quantum mechanics):

```
DoubleBallMap[v_]:={Extract[v,{3}],Extract[v,{4}],Sign[Extract[v,{2}]]*(Extract[v,{1}]+1)/2}/Sqrt[Sum[Extract[v,{\[Mu]}]^2,{\[Mu],1,4}]];
C2toR4[v_]:={Re[Extract[v,{1}]],Im[Extract[v,{1}]],Re[Extract[v,{2}]],Im[Extract[v,{2}]]};
SpinKet[\[Beta]_,t_] := List[Sin[\[Beta]/2]Exp[-I 2\[Pi] t],Cos[\[Beta]/2]Exp[I 2\[Pi] t]];
ParametricPlot3D[Map[(DoubleBallMap[C2toR4[SpinKet[#,t]]])&,Range[0,\[Pi],\[Pi]/16]],{t,0,2\[Pi]}]
```

Offline

**R00KIE****Forum Moderator**- From: Between a computer and a chair
- Registered: 2008-09-14
- Posts: 4,734

I have tried Mathematica v7 too and it seems it does not play well with Arch, I get random crashes and other issues that I don't have with v6.

If you can downgrade to v6, I guess you will be happier with it for now ... otherwise fill a bug report with Mathworks if you can.

R00KIE

Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K

Offline

**cjpembo****Member**- Registered: 2008-08-06
- Posts: 105

This is a wild guess...

Mathematica allows you to use joysticks and gamepads etc as input. Perhaps your accelerometer is being mistaken for joystick input?

Do the following in mathematica:

ControllerInformation[]

See anything?

If so, these next steps should be a blast!

Create a simple 3D plot:

Plot3D[Sin[x] Cos[y], {x, 0, Pi}, {y, 0, PI}]

Select your graph. Hold down the shift key and shake your laptop. Did the graph zoom?

If so, hold down the ctrl key and shake again. Did the graph pan?

Write a notebook that records rollercoaster g-forces and head to Disney world for research.

But, I'm probably wrong. And it will be turn out to be something much less interesting.

Offline

**navaburo****Member**- From: NYC
- Registered: 2009-01-18
- Posts: 11
- Website

When I do:

```
Dynamic[PolarPlot[-Sin[
3 t - 3 ArcTan[
ControllerState[
"Unknown Axis"]/(.5 -
ControllerState["Unknown Axis 3"])]], {t, 0, 2 \[Pi]}]]
```

I get a plot that stays upright whenever I tilt the laptop!

This is AWSOME!!!!

Thanks sooo much for the suggestion... (Darnit, i have to go to class... and this will look very suspicious to the prof)

peaceout

Offline

**cjpembo****Member**- Registered: 2008-08-06
- Posts: 105

You've got to be kidding me! I was (mostly) kidding when I suggested that! That opens up a world of possibilities for some neat projects. I'm posting a link to this thread on the Mathematica users mailing list; I want to see if this is a known feature or a cool linux "bug" I hope they never fix. Have fun.

Offline

**cjpembo****Member**- Registered: 2008-08-06
- Posts: 105

Just as a follow-up:

You can of course unload the accelerometer module if you're not using it.

Someone named Rob on the mathematica users list gave the following advice:

On Linux, Mathematica will treat devices at /dev/input/js0 through jsN

as controllers. As you discovered, apparently this laptop's

accelerometer masquerades as a joystick. The high CPU usage is caused

by the driver sending many updates to the device file descriptor,

which Mathematica watches and does work whenever the values change.

This can be disabled by adding the name of the controller (as returned

by ControllerInformation[]) to the value list for the undocumented

option "DisableControllers":SetOptions[$FrontEnd, DisableControllers -> Prepend

[DisableControllers /. Options[$FrontEnd, DisableControllers], "DEVICE

NAME HERE"]]-Rob

Offline