Developing Spin Devices For Logic And Memory Applications